{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from kalmanfilter import KalmanFilter\n",
    "from datapoint import DataPoint\n",
    "from fusionekf import FusionEKF\n",
    "from tools import get_RMSE, cartesian_to_polar\n",
    "from helpers import parse_data, get_state_estimations, print_EKF_data\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "lidar_R = np.matrix([[0.01, 0], \n",
    "                     [0, 0.01]])\n",
    "\n",
    "radar_R = np.matrix([[0.01, 0, 0], \n",
    "                     [0, 1.0e-6, 0], \n",
    "                     [0, 0, 0.01]])\n",
    "\n",
    "lidar_H = np.matrix([[1, 0, 0, 0],\n",
    "                     [0, 1, 0, 0]])\n",
    "\n",
    "P = np.matrix([[1, 0, 0, 0],\n",
    "               [0, 1, 0, 0],\n",
    "               [0, 0, 1000, 0], \n",
    "               [0, 0, 0, 1000]])\n",
    "\n",
    "Q = np.matrix(np.zeros([4, 4]))\n",
    "F = np.matrix(np.eye(4))\n",
    "\n",
    "d = {\n",
    "  'number_of_states': 4, \n",
    "  'initial_process_matrix': P,\n",
    "  'radar_covariance_matrix': radar_R,\n",
    "  'lidar_covariance_matrix': lidar_R, \n",
    "  'lidar_transition_matrix': lidar_H,\n",
    "  'inital_state_transition_matrix': F,\n",
    "  'initial_noise_matrix': Q, \n",
    "  'acceleration_noise_x': 5, \n",
    "  'acceleration_noise_y': 5\n",
    "}\n",
    "\n",
    "EKF = FusionEKF(d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING: in cartesian_to_polar(): d_squared < THRESH\n",
      "WARNING: in calculate_jacobian(): d_squared < THRESH\n"
     ]
    }
   ],
   "source": [
    "all_sensor_data, all_ground_truths = parse_data(\"data/data-2.txt\")\n",
    "all_state_estimations = get_state_estimations(EKF, all_sensor_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "lidar_xs, lidar_ys = [], []\n",
    "radar_xs, radar_ys, radar_angles = [], [], []\n",
    "truth_xs, truth_ys, truth_angles = [], [], []\n",
    "state_xs, state_ys, state_angles = [], [], []\n",
    "    \n",
    "for s, t, p in zip(all_sensor_data, all_ground_truths, all_state_estimations):\n",
    "    \n",
    "  if s.get_name() == \"lidar\":\n",
    "    x, y = s.get_raw()\n",
    "    lidar_xs.append(x)\n",
    "    lidar_ys.append(y)\n",
    "  else:\n",
    "    x, y, vx, vy = s.get()\n",
    "    angle = np.arctan2(vy, vx)\n",
    "    radar_xs.append(x)\n",
    "    radar_ys.append(y)\n",
    "    radar_angles.append(angle + np.pi * 3 / 2)\n",
    "\n",
    "  x, y, vx, vy = t.get()\n",
    "  t_angle =  np.arctan2(vx, vy)\n",
    "  truth_xs.append(x)\n",
    "  truth_ys.append(y)\n",
    "  truth_angles.append(t_angle + np.pi * 3 / 2)\n",
    "\n",
    "  x, y, vx, vy = p.get()\n",
    "  p_angle =  np.arctan2(vx, vy)\n",
    "  state_xs.append(x)\n",
    "  state_ys.append(y)\n",
    "  state_angles.append(p_angle + np.pi * 3 / 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <a href=\"http://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
       "        <span id=\"57602563-4500-4d44-9679-121a37e02914\">Loading BokehJS ...</span>\n",
       "    </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "\n",
       "(function(global) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  var force = true;\n",
       "\n",
       "  if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "    window._bokeh_onload_callbacks = [];\n",
       "    window._bokeh_is_loading = undefined;\n",
       "  }\n",
       "\n",
       "\n",
       "  \n",
       "  if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "    window._bokeh_timeout = Date.now() + 5000;\n",
       "    window._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "     \"<div style='background-color: #fdd'>\\n\"+\n",
       "     \"<p>\\n\"+\n",
       "     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "     \"</p>\\n\"+\n",
       "     \"<ul>\\n\"+\n",
       "     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "     \"</ul>\\n\"+\n",
       "     \"<code>\\n\"+\n",
       "     \"from bokeh.resources import INLINE\\n\"+\n",
       "     \"output_notebook(resources=INLINE)\\n\"+\n",
       "     \"</code>\\n\"+\n",
       "     \"</div>\"}};\n",
       "\n",
       "  function display_loaded() {\n",
       "    if (window.Bokeh !== undefined) {\n",
       "      document.getElementById(\"57602563-4500-4d44-9679-121a37e02914\").textContent = \"BokehJS successfully loaded.\";\n",
       "    } else if (Date.now() < window._bokeh_timeout) {\n",
       "      setTimeout(display_loaded, 100)\n",
       "    }\n",
       "  }\n",
       "\n",
       "  function run_callbacks() {\n",
       "    window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "    delete window._bokeh_onload_callbacks\n",
       "    console.info(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(js_urls, callback) {\n",
       "    window._bokeh_onload_callbacks.push(callback);\n",
       "    if (window._bokeh_is_loading > 0) {\n",
       "      console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    }\n",
       "    if (js_urls == null || js_urls.length === 0) {\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "    console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "    window._bokeh_is_loading = js_urls.length;\n",
       "    for (var i = 0; i < js_urls.length; i++) {\n",
       "      var url = js_urls[i];\n",
       "      var s = document.createElement('script');\n",
       "      s.src = url;\n",
       "      s.async = false;\n",
       "      s.onreadystatechange = s.onload = function() {\n",
       "        window._bokeh_is_loading--;\n",
       "        if (window._bokeh_is_loading === 0) {\n",
       "          console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "          run_callbacks()\n",
       "        }\n",
       "      };\n",
       "      s.onerror = function() {\n",
       "        console.warn(\"failed to load library \" + url);\n",
       "      };\n",
       "      console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "    }\n",
       "  };var element = document.getElementById(\"57602563-4500-4d44-9679-121a37e02914\");\n",
       "  if (element == null) {\n",
       "    console.log(\"Bokeh: ERROR: autoload.js configured with elementid '57602563-4500-4d44-9679-121a37e02914' but no matching script tag was found. \")\n",
       "    return false;\n",
       "  }\n",
       "\n",
       "  var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.js\"];\n",
       "\n",
       "  var inline_js = [\n",
       "    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "    \n",
       "    function(Bokeh) {\n",
       "      \n",
       "      document.getElementById(\"57602563-4500-4d44-9679-121a37e02914\").textContent = \"BokehJS is loading...\";\n",
       "    },\n",
       "    function(Bokeh) {\n",
       "      console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n",
       "      Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n",
       "      console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n",
       "      Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n",
       "    }\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    \n",
       "    if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "      for (var i = 0; i < inline_js.length; i++) {\n",
       "        inline_js[i](window.Bokeh);\n",
       "      }if (force === true) {\n",
       "        display_loaded();\n",
       "      }} else if (Date.now() < window._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!window._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      window._bokeh_failed_load = true;\n",
       "    } else if (force !== true) {\n",
       "      var cell = $(document.getElementById(\"57602563-4500-4d44-9679-121a37e02914\")).parents('.cell').data().cell;\n",
       "      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "    }\n",
       "\n",
       "  }\n",
       "\n",
       "  if (window._bokeh_is_loading === 0) {\n",
       "    console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "    run_inline_js();\n",
       "  } else {\n",
       "    load_libs(js_urls, function() {\n",
       "      console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "      run_inline_js();\n",
       "    });\n",
       "  }\n",
       "}(this));"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from bokeh.io import output_notebook, show\n",
    "from bokeh.plotting import figure\n",
    "from bokeh.models import HoverTool\n",
    "from bokeh.models import ColumnDataSource\n",
    "output_notebook()\n",
    "\n",
    "radar_source = ColumnDataSource(data = {\n",
    "    'x' : radar_xs,\n",
    "    'y' : radar_ys,\n",
    "    'angle': radar_angles, \n",
    "})\n",
    "\n",
    "truth_source = ColumnDataSource(data = {\n",
    "    'x' : truth_xs,\n",
    "    'y' : truth_ys,\n",
    "    'angle': truth_angles, \n",
    "})\n",
    "\n",
    "state_source = ColumnDataSource(data = {\n",
    "    'x' : state_xs,\n",
    "    'y' : state_ys,\n",
    "    'angle': truth_angles, \n",
    "})\n",
    "\n",
    "lidar_source = ColumnDataSource(data = {\n",
    "    'x' : lidar_xs,\n",
    "    'y' : lidar_ys,\n",
    "})\n",
    "\n",
    "\n",
    "hover = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"b4e37ada-b630-431b-9fdc-304c0a68af04\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"b4e37ada-b630-431b-9fdc-304c0a68af04\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"b4e37ada-b630-431b-9fdc-304c0a68af04\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'b4e37ada-b630-431b-9fdc-304c0a68af04' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"81054da0-a1cb-46a0-9854-005ac308d7d2\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"4dd682a6-541a-4457-a0eb-56f1b2ac8c1e\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"7ac149a2-7884-4ff2-8964-11d08e95befe\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"4dd682a6-541a-4457-a0eb-56f1b2ac8c1e\",\"type\":\"LinearAxis\"},{\"id\":\"8079d38f-3567-42fa-9146-b1f9e31db0eb\",\"type\":\"Grid\"},{\"id\":\"7ac149a2-7884-4ff2-8964-11d08e95befe\",\"type\":\"LinearAxis\"},{\"id\":\"7e001cb9-ed28-42df-a79d-81b4dd7a88c9\",\"type\":\"Grid\"},{\"id\":\"eed7db32-a9a5-4f14-9861-6a8edac3b9f8\",\"type\":\"Legend\"},{\"id\":\"efe3a82d-05cf-434b-937d-49ef99a7dfbd\",\"type\":\"GlyphRenderer\"},{\"id\":\"bd2dcc59-14ca-4fab-9ba8-d9592df339de\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"e13f419e-16cd-43ec-9f72-02ab7a32b01d\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"2e68739b-e639-4132-97dc-c70b7970b9ab\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"8483806a-e081-468b-906a-742069ba97c6\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"80e01e02-7a16-4827-ba03-e4995d4951e0\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"e49cc91e-75c9-400f-96f6-a44e8553206e\",\"type\":\"DataRange1d\"}},\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.73858625038469,4.7644149603846895,4.78569427038469,4.8117497203846895,4.83665708038469,4.8577380803846895,4.8854642803846895,4.909715680384689,4.928538880384689,4.94904748038469,4.96675178038469,4.98518208038469,5.00272198038469,5.0162893803846895,5.0292152803846895,5.0414301803846895,5.05077278038469,5.0596443803846896,5.06308698038469,5.068005980384689,5.067701280384689,5.07170648038469,5.07136878038469,5.06903768038469,5.06894018038469,5.06111128038469,5.05642938038469,5.047975780384689,5.0424490803846895,5.0358929803846895,5.02925348038469,5.01790228038469,5.00980118038469,5.00449998038469,4.99341168038469,4.98196388038469,4.97456968038469,4.96634198038469,4.95775618038469,4.95100548038469,4.94214378038469,4.93446338038469,4.927756580384689,4.91980398038469,4.91439068038469,4.905369380384689,4.89660718038469,4.894815980384689,4.885376780384689,4.87959078038469,4.873435580384689,4.8662929803846895,4.85845278038469,4.8535038803846895,4.844571680384689,4.84538578038469,4.83827298038469,4.8320803803846895,4.828140980384689,4.82559498038469,4.81917808038469,4.81526558038469,4.816398680384689,4.8128520803846895,4.81571588038469,4.81567958038469,4.81518128038469,4.81773358038469,4.820256280384689,4.820438680384689,4.83179008038469,4.83674238038469,4.83893598038469,4.84453578038469,4.85278978038469,4.856194380384689,4.86058848038469,4.87170858038469,4.875627580384689,4.88309818038469,4.88914918038469,4.888723580384689,4.891763780384689,4.89993238038469,4.904382180384689,4.90111248038469,4.90747058038469,4.90900928038469,4.90550658038469,4.90710508038469,4.904728980384689,4.903648280384689,4.90337928038469,4.901842680384689,4.898989980384689,4.89760808038469,4.89674908038469,4.894147680384689,4.88862108038469],\"x\":[0.0,1.8120890065536968,4.195282898131183,6.439263951838519,8.897494094590057,11.444709998562601,13.657165989272517,16.28195527013715,19.363047979292386,21.621344108905937,24.560055363578353,26.541910417680082,29.47157812077767,31.792798199174168,35.05993022827336,37.49732769560551,39.900941693889585,42.571418733066885,45.64898040657271,47.93305501262085,50.5736513340699,53.52770394894018,55.8669730738404,58.579938550190896,60.764808537463345,63.74778170921791,65.88384342247551,68.67592580850912,70.7403296216073,73.0731712914125,74.9747821562663,77.13859354321183,79.17177113047259,81.1423002728638,82.50846076380661,84.28976505279456,85.97430637614002,87.61705943212222,88.41905450805521,89.78205385511532,90.84185210246,92.04917907179099,93.31857958173161,93.74234112734182,94.49395448086288,95.60968374739882,96.55895399200789,97.53327961948968,98.41615468912647,98.97815733129316,100.44057706513598,101.16930696477358,102.08068815353765,102.77582654264684,103.90499434379076,105.31590025369279,106.43875960011057,108.13143858278916,109.3876500232867,111.42573952890967,112.79694011066982,114.91642361180433,116.87120218708426,118.84992917989058,120.93423833970587,123.14220229018764,125.37589942108642,127.5063888288843,130.3344485564308,132.446615000554,135.1266605192927,137.65320233691628,140.30474598765764,142.6256163737405,145.78932837378665,148.14635115055142,150.64925114427615,153.46554947246355,156.009171438787,159.01391055766305,161.52867447954372,164.11556634790054,166.74825687834473,169.34502678163898,172.13478419876878,174.4744732696961,177.21134920572447,179.54285820847673,182.0465924352896,184.83348920835274,187.29582978840955,189.73812421115719,191.6823753367516,193.5554476756831,195.50671773399304,197.5820787172974,199.35645559429446,200.93225566805958,202.65049161342554,203.80860115543211],\"y\":[0.0,0.04748264786462898,0.21846084257143278,0.4728794469724612,0.8869824485022623,1.4295787391050676,1.9991549428591089,2.8464834078654198,3.871222944913029,4.747620196138109,5.923344376318675,6.900747701680275,8.245189957744993,9.498908426060733,10.995322083099882,12.294281139537029,13.62433332599153,14.98171157454254,16.521338038994937,17.534855906435702,18.783412268872503,19.862010699894274,20.984967829539112,21.981451628861056,22.63984645834687,23.7441692656956,23.954128228185038,24.60585513894103,24.672752931702785,25.034285363594634,25.13775096364854,25.294760630930256,24.96978639685302,24.870365557040074,24.811385251764612,24.33124510854905,23.754746342657693,23.512732123359523,22.949778454520246,22.482580932036498,22.097357323528183,21.528897814318178,21.071201563577834,20.507109611183132,19.885448646965767,19.58036957994624,18.86880294686719,18.173452009657918,18.155616058011667,17.294873926738514,16.952114087407445,16.435307956573727,15.835855802267123,15.119504041990588,14.760651532259974,14.002587512464663,14.240073777894272,13.684378949243364,13.15564377721389,12.955666227391628,12.824120189313772,12.318684155068672,12.06590888021587,12.406315021995534,12.190468227480695,12.769378268831465,12.996404104352319,13.153033749571646,13.781046422209648,14.342327973694676,14.657480322136617,16.514498795966816,17.53786603036044,18.14581064875866,19.3785257148268,20.937624190378223,21.814759909721822,22.91149960336169,25.067774793011935,26.19025159958435,27.84544498336496,29.315046248434605,29.71208219098014,30.70626687316412,32.666633096223684,33.915666311486454,33.846738229507025,35.47669757489859,36.262562461987635,36.14505716298903,36.93751853374997,36.951022287908145,37.11469778282844,37.42335772049185,37.489076100122446,37.302984337874236,37.35274592637205,37.46936679669847,37.24453567970666,36.29413616641104]}},\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"11afc9d8-391e-4847-b258-d14c23b765cc\",\"type\":\"Cross\"},{\"attributes\":{},\"id\":\"2e68739b-e639-4132-97dc-c70b7970b9ab\",\"type\":\"ToolEvents\"},{\"attributes\":{\"label\":{\"value\":\"radar measurements\"},\"renderers\":[{\"id\":\"efe3a82d-05cf-434b-937d-49ef99a7dfbd\",\"type\":\"GlyphRenderer\"}]},\"id\":\"cf53b644-03bf-4962-9c44-95510000d73b\",\"type\":\"LegendItem\"},{\"attributes\":{\"data_source\":{\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"d1348a1d-661d-4546-8f97-5fe989f37dd6\",\"type\":\"Triangle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"6c2ec234-41db-44e3-8ddf-74dcddba183b\",\"type\":\"Triangle\"},\"selection_glyph\":null},\"id\":\"efe3a82d-05cf-434b-937d-49ef99a7dfbd\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"daf21dbe-e0e5-48e1-aeab-642596fc7527\",\"type\":\"BasicTicker\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"firebrick\"},\"line_color\":{\"value\":\"orange\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d1348a1d-661d-4546-8f97-5fe989f37dd6\",\"type\":\"Triangle\"},{\"attributes\":{\"data_source\":{\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"77881547-ff63-4a6c-a91f-7429a2fbb466\",\"type\":\"Cross\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"11afc9d8-391e-4847-b258-d14c23b765cc\",\"type\":\"Cross\"},\"selection_glyph\":null},\"id\":\"bd2dcc59-14ca-4fab-9ba8-d9592df339de\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"daf21dbe-e0e5-48e1-aeab-642596fc7527\",\"type\":\"BasicTicker\"}},\"id\":\"7e001cb9-ed28-42df-a79d-81b4dd7a88c9\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null},\"id\":\"e49cc91e-75c9-400f-96f6-a44e8553206e\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"d830928f-16d0-4444-9ebc-a7dad30fb5c2\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"grey\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"77881547-ff63-4a6c-a91f-7429a2fbb466\",\"type\":\"Cross\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"019ecbef-e38f-44a6-b9ab-76b0069ada40\",\"type\":\"HoverTool\"}]},\"id\":\"8483806a-e081-468b-906a-742069ba97c6\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":{\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"df5c48b7-cf6d-4943-8f2a-dbd9f520384e\",\"type\":\"BasicTicker\"}},\"id\":\"8079d38f-3567-42fa-9146-b1f9e31db0eb\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"b7ce2eda-9bd2-44c1-9be5-3ba839e606c2\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"daf21dbe-e0e5-48e1-aeab-642596fc7527\",\"type\":\"BasicTicker\"}},\"id\":\"7ac149a2-7884-4ff2-8964-11d08e95befe\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"df5c48b7-cf6d-4943-8f2a-dbd9f520384e\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"e13f419e-16cd-43ec-9f72-02ab7a32b01d\",\"type\":\"Title\"},{\"attributes\":{\"label\":{\"value\":\"radar measured velocity direction\"},\"renderers\":[{\"id\":\"bd2dcc59-14ca-4fab-9ba8-d9592df339de\",\"type\":\"GlyphRenderer\"}]},\"id\":\"a8c7dd6c-650e-4a3c-9979-1f5bcf101c73\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null},\"id\":\"80e01e02-7a16-4827-ba03-e4995d4951e0\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"b7ce2eda-9bd2-44c1-9be5-3ba839e606c2\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"index\",\"$index\"],[\"x , y\",\"$x, $y\"],[\"angle radians\",\"@angle\"]]},\"id\":\"019ecbef-e38f-44a6-b9ab-76b0069ada40\",\"type\":\"HoverTool\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6c2ec234-41db-44e3-8ddf-74dcddba183b\",\"type\":\"Triangle\"},{\"attributes\":{\"formatter\":{\"id\":\"d830928f-16d0-4444-9ebc-a7dad30fb5c2\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"df5c48b7-cf6d-4943-8f2a-dbd9f520384e\",\"type\":\"BasicTicker\"}},\"id\":\"4dd682a6-541a-4457-a0eb-56f1b2ac8c1e\",\"type\":\"LinearAxis\"},{\"attributes\":{\"items\":[{\"id\":\"cf53b644-03bf-4962-9c44-95510000d73b\",\"type\":\"LegendItem\"},{\"id\":\"a8c7dd6c-650e-4a3c-9979-1f5bcf101c73\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"eed7db32-a9a5-4f14-9861-6a8edac3b9f8\",\"type\":\"Legend\"}],\"root_ids\":[\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"81054da0-a1cb-46a0-9854-005ac308d7d2\",\"elementid\":\"b4e37ada-b630-431b-9fdc-304c0a68af04\",\"modelid\":\"2ebd9ad7-4d5a-40f7-9fe1-e67784584cd3\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"b4e37ada-b630-431b-9fdc-304c0a68af04\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################################################################\n",
    "#  RADAR MEASUREMENTS WITH ORIENTATION\n",
    "###################################################################\n",
    "\n",
    "hover2 = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700, tools = [hover2])\n",
    "\n",
    "p.triangle(\n",
    "  'x', 'y', size = 10, \n",
    "  fill_color = \"firebrick\",\n",
    "  line_color = \"orange\",\n",
    "  fill_alpha = 0.2,\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"radar measurements\", \n",
    "  source = radar_source)\n",
    "\n",
    "\n",
    "p.cross(\n",
    "  'x', 'y', size = 5, \n",
    "  line_color = \"grey\",\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"radar measured velocity direction\",\n",
    "  source = radar_source)\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"874e3fcb-3a95-468f-882a-ff92b21b956a\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"874e3fcb-3a95-468f-882a-ff92b21b956a\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"874e3fcb-3a95-468f-882a-ff92b21b956a\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid '874e3fcb-3a95-468f-882a-ff92b21b956a' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"59e9dad5-7af6-4f4c-ab00-9317c650d0bc\":{\"roots\":{\"references\":[{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"d53833a3-961b-41bd-81e9-b0468dc0317b\",\"type\":\"BasicTicker\"}},\"id\":\"cd6de213-a12d-4620-8ed4-c299ff63c311\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"7c496e5f-b333-405b-91f4-de4a338bcc28\",\"type\":\"ToolEvents\"},{\"attributes\":{\"callback\":null},\"id\":\"463e318a-728f-4445-afcb-0f03eee7dca3\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"68c244d5-79af-4930-b1b0-abe7c5b3f363\",\"type\":\"Title\"},{\"attributes\":{\"data_source\":{\"id\":\"2b18215c-9f67-4ba0-a64d-bdb6b7182151\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"8345ea9c-c691-42ad-9fdf-42cefc442019\",\"type\":\"Circle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"41b93c87-d6ae-463b-8c53-250508973c51\",\"type\":\"Circle\"},\"selection_glyph\":null},\"id\":\"e841f387-4db3-4a8c-92d8-1cebd0450251\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"6f5d0e56-e289-47c8-ba4b-c2b9404905f0\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"41b93c87-d6ae-463b-8c53-250508973c51\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"d53833a3-961b-41bd-81e9-b0468dc0317b\",\"type\":\"BasicTicker\"},{\"attributes\":{\"below\":[{\"id\":\"b8886b84-172c-4ed0-95c9-e477d3fda264\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1664a537-264a-4f7c-85d1-62d8168da622\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"b8886b84-172c-4ed0-95c9-e477d3fda264\",\"type\":\"LinearAxis\"},{\"id\":\"9bbc84ac-4409-48f5-b688-45a23aa03cb5\",\"type\":\"Grid\"},{\"id\":\"1664a537-264a-4f7c-85d1-62d8168da622\",\"type\":\"LinearAxis\"},{\"id\":\"cd6de213-a12d-4620-8ed4-c299ff63c311\",\"type\":\"Grid\"},{\"id\":\"3dd01bde-6ad1-4150-8100-30c3222f187c\",\"type\":\"Legend\"},{\"id\":\"e841f387-4db3-4a8c-92d8-1cebd0450251\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"68c244d5-79af-4930-b1b0-abe7c5b3f363\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"7c496e5f-b333-405b-91f4-de4a338bcc28\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"f3e29a95-49fe-4f90-b015-efe90b227c3a\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"463e318a-728f-4445-afcb-0f03eee7dca3\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"a12c567e-7803-41d6-8aa6-ba109a5495c8\",\"type\":\"DataRange1d\"}},\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"index\",\"$index\"],[\"x , y\",\"$x, $y\"],[\"angle radians\",\"@angle\"]]},\"id\":\"ed346436-b6f3-477d-9257-0f957e432b1b\",\"type\":\"HoverTool\"},{\"attributes\":{\"callback\":null},\"id\":\"a12c567e-7803-41d6-8aa6-ba109a5495c8\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"navy\"},\"line_color\":{\"value\":\"teal\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"8345ea9c-c691-42ad-9fdf-42cefc442019\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[0.0,1.559445,3.890927,6.863517,9.077331,11.57555,13.59209,16.64559,19.01058,21.33124,24.07871,26.60525,29.58639,31.9416,34.61568,37.14036,40.32853,42.76639,45.35721,48.15409,50.62278,53.72678,56.03223,58.6632,60.87224,63.38208,66.34029,68.26205,70.82748,72.89226,75.00209,77.12245,79.1089,80.80743,82.62158,84.17335,85.63776,86.94492,88.82267,89.49667,90.51327,91.71782,92.85989,93.46683,95.32289,95.50389,96.26405,97.52863,98.21047,99.03627,99.99686,101.2038,102.3868,103.0034,104.1144,105.5409,106.8312,108.0836,109.5344,111.063,112.9126,114.801,116.6871,118.9528,120.6951,123.5682,124.8938,127.8531,129.9473,132.0919,135.0735,137.5606,140.3314,142.8884,145.392,148.2509,150.6859,153.422,156.0466,158.9049,161.4116,163.6251,166.8278,169.0972,172.1752,174.643,177.0301,180.1454,182.5994,184.7319,186.9463,189.4652,191.7353,193.4712,195.9914,197.7246,199.2941,201.5491,202.9624,203.9906],\"y\":[0.0,-0.1385015,-0.1341657,0.4168175,0.5932112,1.6669,2.311915,2.902999,3.705553,4.732053,5.569675,6.96102,8.08789,9.880168,10.6988,12.08833,13.46661,14.82937,16.55239,17.28347,19.07211,19.89821,21.0923,21.78207,22.78765,23.4069,23.99586,24.35817,24.88439,24.71354,25.25945,24.92967,25.03687,24.86882,24.63932,24.55042,23.80798,23.52704,22.78691,22.30817,21.66767,21.11524,20.95372,20.21548,19.65849,19.6984,19.15973,18.72696,18.3739,17.35698,16.98822,16.53684,16.39923,15.35302,15.27083,14.44125,14.04819,13.6604,13.57136,12.58139,12.48773,12.55057,12.10355,12.00094,12.2918,12.8297,12.77429,13.32727,13.6963,14.50702,15.04748,16.2147,17.00802,17.99183,19.16167,20.47536,22.11423,23.49086,24.80844,26.03078,27.42561,28.76827,30.20623,31.37172,32.34041,33.46252,34.20094,35.14229,35.75303,36.51547,36.94045,37.40516,37.56307,37.27891,37.39908,37.72855,37.28617,36.99733,36.45683,36.1967]}},\"id\":\"2b18215c-9f67-4ba0-a64d-bdb6b7182151\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"382d9140-fbe5-4524-8f2f-ac013af8450b\",\"type\":\"BasicTicker\"}},\"id\":\"9bbc84ac-4409-48f5-b688-45a23aa03cb5\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"382d9140-fbe5-4524-8f2f-ac013af8450b\",\"type\":\"BasicTicker\"},{\"attributes\":{\"items\":[{\"id\":\"e3a61e19-2fa7-4498-a624-acb92c80a6c7\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"3dd01bde-6ad1-4150-8100-30c3222f187c\",\"type\":\"Legend\"},{\"attributes\":{\"formatter\":{\"id\":\"4ecd28df-2ce8-4002-a93a-ceb53b271fc7\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"d53833a3-961b-41bd-81e9-b0468dc0317b\",\"type\":\"BasicTicker\"}},\"id\":\"1664a537-264a-4f7c-85d1-62d8168da622\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"ed346436-b6f3-477d-9257-0f957e432b1b\",\"type\":\"HoverTool\"}]},\"id\":\"f3e29a95-49fe-4f90-b015-efe90b227c3a\",\"type\":\"Toolbar\"},{\"attributes\":{\"formatter\":{\"id\":\"6f5d0e56-e289-47c8-ba4b-c2b9404905f0\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"382d9140-fbe5-4524-8f2f-ac013af8450b\",\"type\":\"BasicTicker\"}},\"id\":\"b8886b84-172c-4ed0-95c9-e477d3fda264\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"4ecd28df-2ce8-4002-a93a-ceb53b271fc7\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"label\":{\"value\":\"lidar measurements\"},\"renderers\":[{\"id\":\"e841f387-4db3-4a8c-92d8-1cebd0450251\",\"type\":\"GlyphRenderer\"}]},\"id\":\"e3a61e19-2fa7-4498-a624-acb92c80a6c7\",\"type\":\"LegendItem\"}],\"root_ids\":[\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"59e9dad5-7af6-4f4c-ab00-9317c650d0bc\",\"elementid\":\"874e3fcb-3a95-468f-882a-ff92b21b956a\",\"modelid\":\"63a62f86-f566-4aa1-9b95-b7f5f62c909f\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"874e3fcb-3a95-468f-882a-ff92b21b956a\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################################################################\n",
    "#  LIDAR MEASUREMENTS\n",
    "###################################################################\n",
    "\n",
    "hover3 = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700, tools = [hover3])\n",
    "\n",
    "p.circle(\n",
    "  'x', 'y', size = 10, \n",
    "  fill_color = \"navy\",\n",
    "  line_color = \"teal\",\n",
    "  fill_alpha = 0.2,\n",
    "  line_width = 1, \n",
    "  legend = \"lidar measurements\", \n",
    "  source = lidar_source)\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"1469355b-d08a-4fde-b6bf-a593ad61a3ed\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"1469355b-d08a-4fde-b6bf-a593ad61a3ed\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"1469355b-d08a-4fde-b6bf-a593ad61a3ed\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid '1469355b-d08a-4fde-b6bf-a593ad61a3ed' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"521bd591-16e5-4dd1-9616-afedfbcb5b96\":{\"roots\":{\"references\":[{\"attributes\":{\"label\":{\"value\":\"state prediction: velocity direction\"},\"renderers\":[{\"id\":\"1ca41e6e-cca0-4931-857c-d4a0035b2f5a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"91ed1f6e-6da5-414b-8890-758bfdbfbe01\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\",\"angle\"],\"data\":{\"angle\":[4.71238898038469,4.71238898038469,6.371767492293133,6.293898819157748,6.382095632389652,6.174593727566,6.223490933806103,6.2422809251939615,6.239266660798972,6.03214700985211,5.963904831637674,6.109482298212532,5.6591924168205345,5.961834251351365,6.004178852123187,5.973937823008193,5.971483140417737,5.914331159031755,5.871123686363589,5.934667772158961,5.992519845308842,5.872257476215129,5.774136374528249,5.853854721576198,5.942862770661943,5.836197681721881,5.556479380915477,5.740121148518769,6.005954306310245,5.923095861081876,5.688186249354129,5.704160469316319,6.037112469322366,5.8959789161711065,5.841342366504211,5.73896169606004,5.762518815975648,5.83201211787771,6.1681773471101655,5.984503671464422,5.566455761689965,5.651065446032341,6.1700151071572975,6.216420924681998,5.503109738712791,5.5020132305622305,6.389457514017944,6.319583603827225,5.471392562266893,5.586197170288986,6.361947952978187,6.268669686369747,6.0436667921339176,6.013814448112576,6.193111529776866,6.113986583470782,6.124945696585531,6.216766111293666,6.400516315197681,6.213476071561255,6.02048928294637,6.077739240156462,6.633918750809996,6.53593967380016,6.170897267401372,6.247428960265438,6.437629759515704,6.466387681220805,6.356366923686951,6.259456843158866,6.4842188276164405,6.615192679954665,6.804927426970476,6.703682546386252,6.193034581598646,6.279107549825799,6.869495285931125,6.932311312744416,6.716374336904066,6.21535391208587,7.3095131647596165,6.933326081850176,6.961894882603494,6.573260955574176,6.679915585573203,6.62991370069979,1.7066387907620606,6.982566952667513,6.5973658797893995,6.863918442752639,5.640951890181559,5.8926773223818385,7.330825064450298,7.214127853269627,5.8718425790164375,6.288972257041927,6.4740212065315905,6.634372985257111,7.443116003216524,7.1996777689809885,5.7360554585972645,5.86085754918115,6.983221984940538,7.088829071999013,5.789898385054901,6.041341572061537,7.476277066004411,7.266062891536855,5.38720883591458,5.541931118064308,7.01784686463465,7.2427287496371555,5.541898893082704,5.374851877483278,7.16998198998342,7.13229406706239,5.427123432333329,5.602053795280685,7.180145078130943,7.0733170569393735,5.7077750263589415,5.599800639359075,6.758920706035505,6.868458101989507,6.057107435114109,6.091377486113187,6.484164774785437,6.3601597558149425,6.055017705462583,6.131558689035842,6.0506190578618675,6.0079284237794806,6.811778442367395,6.406697787590885,5.919965990476566,5.930412079743931,6.23930684124812,6.219345762996086,5.609049227406373,5.812032160518838,6.243905734010088,6.344545309738021,5.501452374220619,5.491090153566164,6.548522392038529,6.431462163295395,5.621206205695133,5.637919549359495,6.071652913329512,6.052273651160452,5.700580069258071,5.630202392615721,5.825531927755898,5.903631415715758,5.7019860476067885,5.785952504695404,5.752483667238824,5.6926025418400386,6.045513174683325,6.020188716732154,5.589169386542246,5.587099014349193,5.949214951731386,5.921470319529928,5.847360442290096,5.876571153416409,5.695230142672925,5.847226577268839,5.964642475898099,5.896944637080885,5.8867373689431,5.816622654304664,6.203259519420553,6.259991349553118,5.826720873389543,5.659810899004515,6.34133538076538,6.323952879022897,5.79167452668976,5.817996657959652,6.2279339964085185,6.232032759926691,5.994652081265187,6.068622224290154,6.243536033328731,6.32168269641609,6.4788304662511065,6.3563528982066515,6.19757523979272,6.213131759721035,6.051276020501735,6.112607778599927,6.792819020287,6.70760980332531,6.265341873680249,6.244384604422247,6.780685664919599,6.801141799151619,6.364102827859219,6.255086104234181],\"x\":[0.0,0.0,1.5594294407139864,1.6997642436040528,3.8917923855664487,4.06381861083907,6.86063400846729,6.598257790897028,9.077398062364205,9.016314160276366,11.574745880131799,11.511240292875755,13.595201582532296,13.766550957474472,16.64141195103766,16.390098776978668,19.01115821017751,19.088953487623748,21.33291794508709,21.537740411841565,24.079169869579506,24.288247410135753,26.609664464100984,26.761889508058754,29.58444339441153,29.479214053423103,31.943999680604378,31.975171255785632,34.61392371556521,34.739557383541765,37.144076218761256,37.3720875206958,40.32560399006981,40.06457705439623,42.766787310184505,42.69864697597086,45.35728563972067,45.485851243239495,48.155391928391246,48.082423174589586,50.62276929421176,50.60247146869716,53.72170641880972,53.50139666603117,56.0352599784601,55.970221950077814,58.65883888750275,58.59105728059672,60.87795726743112,60.95163997425266,63.37964427421494,63.48131546855045,66.3392116463772,66.04160308973533,68.26215491736463,68.4457591883614,70.82859089827669,70.81177222188988,72.89371997278187,72.98954765866793,75.00303489263688,75.01250966950117,77.12161218641057,77.05929212027051,79.10777409449865,79.06626857878656,80.80863382334134,80.93052112993357,82.62158561165299,82.54529929887109,84.17243834980827,84.21476644994489,85.64035403065675,85.82342986489931,86.94772941066692,87.23774969920835,88.82005814786982,88.61019030525492,89.50104744914198,89.67766459525275,90.5133150525439,90.69187436632792,91.71943895675632,91.85047642501232,92.85986939282726,93.0081734275299,93.47177282711581,93.7560649147808,95.31731144750817,94.80124987945607,95.50556635209328,95.58106786662978,96.26447993756973,96.42932811974242,97.5275466202392,97.46846858046455,98.21192238024696,98.3223934179667,99.03712209402433,99.11506721006639,99.99806489187743,100.15077401027625,101.20236200956009,101.16537769337545,102.38557300520951,102.20922608989436,103.00484418117264,103.04388987112561,104.11448681762992,104.04263117852474,105.5373958011511,105.38381549292414,106.8312003565689,106.65838139704964,108.08199499708465,108.12015405695934,109.536557221145,109.51798444739792,111.06120666540242,111.19860005730496,112.91383001133056,112.88643333921839,114.7987094778584,114.79622480022661,116.68794963080177,116.79724873039008,118.9520961057263,118.90421665311605,120.69784946612906,120.89151003814206,123.5632726296101,123.24766752238506,124.89950378104524,125.34232306549225,127.85209578794976,127.70661217654973,129.94882339585882,130.13428155138342,132.0952564697859,132.370616191482,135.07108311335293,135.01884042435603,137.56145171173029,137.62133478591494,140.33078897967857,140.35527330800906,142.89110995582928,142.87825230089533,145.39205315487314,145.5823921945002,148.25222005607853,148.2267618322195,150.68632207547498,150.74375314771112,153.4224977037653,153.4255374999488,156.0465346635725,156.0028863707598,158.90150627466164,158.87241572790666,161.4151249346334,161.5156326978804,163.62750017993474,163.9463284600591,166.82560169326106,166.69634156453773,169.09942698516178,169.24419916027952,172.1723007443566,172.0599806054648,174.6444093334491,174.6081158550394,177.03021450263947,177.10176361151582,180.14120716074885,179.72525106406857,182.59564599152037,182.2939670911588,184.7326792314511,184.7006055377946,186.94536114239676,187.07045981106444,189.46574586383116,189.5103094241485,191.73542821417678,191.6944266534645,193.47413562852392,193.61050992645215,195.98788947680774,195.65988697319796,197.72313675947967,197.59432152513537,199.2957485946026,199.36270926264527,201.54535452548902,201.1699254114176,202.9612575722091,202.80324175336833,203.99277968677674,204.02844674190862],\"y\":[0.0,0.0,-0.13850011810807575,0.02939423931229085,-0.13381703741216905,0.1963922156187688,0.417074606700436,0.48739976802645557,0.5931888596061516,0.8975420139465631,1.6660164621254927,1.439105463384184,2.3091004553384984,2.0241602510657986,2.902239992057652,2.865252709677587,3.7057064616237136,3.812435094226425,4.732297186215907,4.7319518188913925,5.570439099613631,5.841511577402024,6.96207768274138,6.96149099276796,8.088220912268996,8.23137878310161,9.87793323316501,9.586882739667672,10.701214598414257,10.87612054310945,12.087506449146458,12.240627485062115,13.469785685695351,13.63546293004128,14.828876928918119,14.988698682358853,16.552750330156147,16.488563599770824,17.287562064718735,17.52070029078101,19.066735816090596,18.853885430683054,19.903221342300608,19.845232184047987,21.0851041995143,21.033590050334066,21.790939218981407,21.92353337456869,22.781176822257702,22.739763643201762,23.41406612094208,23.58411803335816,23.993270577750035,23.969900994440742,24.359704427415796,24.48928102171255,24.884688795468435,24.76307219447432,24.714955818843208,24.90873395563262,25.258154735020753,25.19326648225177,24.934110251708564,25.127836621606964,25.03412367479903,24.97120400613181,24.87000214543947,24.848381409631195,24.638627219489443,24.73411944325635,24.551813008431893,24.42068544126276,23.80814881274949,23.777806154322622,23.52442322938002,23.497531222498267,22.79144011874045,22.87968265312676,22.304813206635266,22.406635575046373,21.672805244937955,21.899391049061702,21.114277928132605,21.322844165172945,20.954166573301165,20.994917379629626,20.21818631762873,20.398523923388257,19.65843990865857,19.757332259055723,19.694892105126584,19.641055786260196,19.164695790172345,19.01784414385946,18.720201490065634,18.433508730037676,18.374298226818926,18.267020452646324,17.360939935716758,17.346252414074513,16.981653799470863,16.956237210001277,16.541870520829455,16.486769108887813,16.392493110673577,16.119362544808286,15.359410691222228,15.265499705874573,15.260057408946457,15.027455579051198,14.450693503413412,14.234483320956373,14.035849235351629,14.131635166041077,13.672792142985315,13.679905608591493,13.559664107499334,13.384178574319206,12.592882956183582,12.750864176184049,12.477303563799806,12.630999328039145,12.559156391359906,12.451192322833451,12.097353155126413,12.087597032948636,12.003964534036044,12.168459719887368,12.290051215689006,12.260083209408709,12.82800055737522,12.78916913603424,12.778655990870664,12.888456492816962,13.322669868791067,13.257280322102579,13.69915143308757,13.73383551291505,14.503252879067434,14.462296023142853,15.051304664832825,14.905641274046754,16.205609310392145,16.31436863161683,17.019885208680048,17.19576398048579,17.984312238681422,18.046645205184525,19.166391353759632,19.241832164672537,20.47193765300606,20.616161954528714,22.116790603300558,22.03643791157596,23.48869031158666,23.318596292878805,24.808004825897847,24.87657305353883,26.03365223401951,26.067096063713503,27.422384087409842,27.5487054353863,28.7731065988469,28.94955057589845,30.2044991429592,30.057819939523327,31.370867516791613,31.21944469780818,32.340715054260116,32.400866671283595,33.46295321123981,33.57215480641768,34.20451415057002,34.126425350517636,35.13628403552346,35.1590033793527,35.75950255374069,35.83716653575751,36.51074377726786,36.419806320218726,36.943651593388275,36.95225995437127,37.40320586605088,37.30557323889721,37.56446313814522,37.46558466648027,37.279670209953714,37.331875651841365,37.3976584649934,37.37185920037473,37.727128771026244,37.62419893121266,37.29024791638682,37.31260204192366,36.99436409329722,37.03832984738309,36.460672876380585,36.591752856164355,36.194064073441325,36.22529092878557]}},\"id\":\"7a953f7d-98e2-49b6-9a58-18a8f6141d45\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":20},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4792188e-ca8b-4c67-9d5b-bdcff7b95d7c\",\"type\":\"Triangle\"},{\"attributes\":{\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"140064fb-59b8-4eeb-8832-2a02bdf9dc87\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"03236e8f-9c68-459c-b5ec-5f1ae3179c86\",\"type\":\"BasicTicker\"}},\"id\":\"13535ef2-dadc-434e-ac9e-f9802e8b220b\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"31768561-c256-4963-a5c8-a86fb3196155\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"56866e8e-4f8c-4f40-87cb-e319c604230c\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"31768561-c256-4963-a5c8-a86fb3196155\",\"type\":\"LinearAxis\"},{\"id\":\"13535ef2-dadc-434e-ac9e-f9802e8b220b\",\"type\":\"Grid\"},{\"id\":\"56866e8e-4f8c-4f40-87cb-e319c604230c\",\"type\":\"LinearAxis\"},{\"id\":\"7865a771-9b01-462f-822c-872a589d0a99\",\"type\":\"Grid\"},{\"id\":\"200a7516-07a8-4738-a564-43936c621373\",\"type\":\"BoxAnnotation\"},{\"id\":\"336a2886-f43a-4502-a307-2b9a3f0b6be5\",\"type\":\"Legend\"},{\"id\":\"3cc98d42-9741-41ba-b6dc-0eed4cb9edb4\",\"type\":\"GlyphRenderer\"},{\"id\":\"1ca41e6e-cca0-4931-857c-d4a0035b2f5a\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"97249499-acf8-4cd2-85e0-cddd54d326bd\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"ab9e919f-7ae3-4d49-be60-2c4dd8e9e589\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"9c826fd2-066b-4825-aaff-fbc78da0e3ca\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"f8317508-ce19-499d-bfa1-c0ccfcfbcc76\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"8ab1f981-8b4f-47c6-9d9f-d12c7d7e3617\",\"type\":\"DataRange1d\"}},\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"overlay\":{\"id\":\"200a7516-07a8-4738-a564-43936c621373\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"ec88776a-9cc7-4b47-9b5f-39f6f56dabec\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"ef9c3a12-edaf-46c1-b403-62037441f9d6\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"03236e8f-9c68-459c-b5ec-5f1ae3179c86\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"7ba27b29-9c01-4384-8352-301a10f1564d\",\"type\":\"BasicTicker\"}},\"id\":\"7865a771-9b01-462f-822c-872a589d0a99\",\"type\":\"Grid\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2f23e5d4-2367-4d2e-8a7a-f7d288644b13\",\"type\":\"PanTool\"},{\"id\":\"140064fb-59b8-4eeb-8832-2a02bdf9dc87\",\"type\":\"WheelZoomTool\"},{\"id\":\"ec88776a-9cc7-4b47-9b5f-39f6f56dabec\",\"type\":\"BoxZoomTool\"},{\"id\":\"cb84e1a2-fc49-436b-a541-4fc48428ba04\",\"type\":\"SaveTool\"},{\"id\":\"44ffee1b-065e-4181-95e8-a17f1e3ecfca\",\"type\":\"ResetTool\"},{\"id\":\"ef9c3a12-edaf-46c1-b403-62037441f9d6\",\"type\":\"HelpTool\"}]},\"id\":\"9c826fd2-066b-4825-aaff-fbc78da0e3ca\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.71238898038469,6.371767492293133,6.293898819157748,6.382095632389652,6.174593727566,6.223490933806103,6.2422809251939615,6.239266660798972,6.03214700985211,5.963904831637674,6.109482298212532,5.6591924168205345,5.961834251351365,6.004178852123187,5.973937823008193,5.971483140417737,5.914331159031755,5.871123686363589,5.934667772158961,5.992519845308842,5.872257476215129,5.774136374528249,5.853854721576198,5.942862770661943,5.836197681721881,5.556479380915477,5.740121148518769,6.005954306310245,5.923095861081876,5.688186249354129,5.704160469316319,6.037112469322366,5.8959789161711065,5.841342366504211,5.73896169606004,5.762518815975648,5.83201211787771,6.1681773471101655,5.984503671464422,5.566455761689965,5.651065446032341,6.1700151071572975,6.216420924681998,5.503109738712791,5.5020132305622305,6.389457514017944,6.319583603827225,5.471392562266893,5.586197170288986,6.361947952978187,6.268669686369747,6.0436667921339176,6.013814448112576,6.193111529776866,6.113986583470782,6.124945696585531,6.216766111293666,6.400516315197681,6.213476071561255,6.02048928294637,6.077739240156462,6.633918750809996,6.53593967380016,6.170897267401372,6.247428960265438,6.437629759515704,6.466387681220805,6.356366923686951,6.259456843158866,6.4842188276164405,6.615192679954665,6.804927426970476,6.703682546386252,6.193034581598646,6.279107549825799,6.869495285931125,6.932311312744416,6.716374336904066,6.21535391208587,7.3095131647596165,6.933326081850176,6.961894882603494,6.573260955574176,6.679915585573203,6.62991370069979,1.7066387907620606,6.982566952667513,6.5973658797893995,6.863918442752639,5.640951890181559,5.8926773223818385,7.330825064450298,7.214127853269627,5.8718425790164375,6.288972257041927,6.4740212065315905,6.634372985257111,7.443116003216524,7.1996777689809885,5.7360554585972645,5.86085754918115,6.983221984940538,7.088829071999013,5.789898385054901,6.041341572061537,7.476277066004411,7.266062891536855,5.38720883591458,5.541931118064308,7.01784686463465,7.2427287496371555,5.541898893082704,5.374851877483278,7.16998198998342,7.13229406706239,5.427123432333329,5.602053795280685,7.180145078130943,7.0733170569393735,5.7077750263589415,5.599800639359075,6.758920706035505,6.868458101989507,6.057107435114109,6.091377486113187,6.484164774785437,6.3601597558149425,6.055017705462583,6.131558689035842,6.0506190578618675,6.0079284237794806,6.811778442367395,6.406697787590885,5.919965990476566,5.930412079743931,6.23930684124812,6.219345762996086,5.609049227406373,5.812032160518838,6.243905734010088,6.344545309738021,5.501452374220619,5.491090153566164,6.548522392038529,6.431462163295395,5.621206205695133,5.637919549359495,6.071652913329512,6.052273651160452,5.700580069258071,5.630202392615721,5.825531927755898,5.903631415715758,5.7019860476067885,5.785952504695404,5.752483667238824,5.6926025418400386,6.045513174683325,6.020188716732154,5.589169386542246,5.587099014349193,5.949214951731386,5.921470319529928,5.847360442290096,5.876571153416409,5.695230142672925,5.847226577268839,5.964642475898099,5.896944637080885,5.8867373689431,5.816622654304664,6.203259519420553,6.259991349553118,5.826720873389543,5.659810899004515,6.34133538076538,6.323952879022897,5.79167452668976,5.817996657959652,6.2279339964085185,6.232032759926691,5.994652081265187,6.068622224290154,6.243536033328731,6.32168269641609,6.4788304662511065,6.3563528982066515,6.19757523979272,6.213131759721035,6.051276020501735,6.112607778599927,6.792819020287,6.70760980332531,6.265341873680249,6.244384604422247,6.780685664919599,6.801141799151619,6.364102827859219,6.255086104234181],\"x\":[0.0,0.0,1.5594294407139864,1.6997642436040528,3.8917923855664487,4.06381861083907,6.86063400846729,6.598257790897028,9.077398062364205,9.016314160276366,11.574745880131799,11.511240292875755,13.595201582532296,13.766550957474472,16.64141195103766,16.390098776978668,19.01115821017751,19.088953487623748,21.33291794508709,21.537740411841565,24.079169869579506,24.288247410135753,26.609664464100984,26.761889508058754,29.58444339441153,29.479214053423103,31.943999680604378,31.975171255785632,34.61392371556521,34.739557383541765,37.144076218761256,37.3720875206958,40.32560399006981,40.06457705439623,42.766787310184505,42.69864697597086,45.35728563972067,45.485851243239495,48.155391928391246,48.082423174589586,50.62276929421176,50.60247146869716,53.72170641880972,53.50139666603117,56.0352599784601,55.970221950077814,58.65883888750275,58.59105728059672,60.87795726743112,60.95163997425266,63.37964427421494,63.48131546855045,66.3392116463772,66.04160308973533,68.26215491736463,68.4457591883614,70.82859089827669,70.81177222188988,72.89371997278187,72.98954765866793,75.00303489263688,75.01250966950117,77.12161218641057,77.05929212027051,79.10777409449865,79.06626857878656,80.80863382334134,80.93052112993357,82.62158561165299,82.54529929887109,84.17243834980827,84.21476644994489,85.64035403065675,85.82342986489931,86.94772941066692,87.23774969920835,88.82005814786982,88.61019030525492,89.50104744914198,89.67766459525275,90.5133150525439,90.69187436632792,91.71943895675632,91.85047642501232,92.85986939282726,93.0081734275299,93.47177282711581,93.7560649147808,95.31731144750817,94.80124987945607,95.50556635209328,95.58106786662978,96.26447993756973,96.42932811974242,97.5275466202392,97.46846858046455,98.21192238024696,98.3223934179667,99.03712209402433,99.11506721006639,99.99806489187743,100.15077401027625,101.20236200956009,101.16537769337545,102.38557300520951,102.20922608989436,103.00484418117264,103.04388987112561,104.11448681762992,104.04263117852474,105.5373958011511,105.38381549292414,106.8312003565689,106.65838139704964,108.08199499708465,108.12015405695934,109.536557221145,109.51798444739792,111.06120666540242,111.19860005730496,112.91383001133056,112.88643333921839,114.7987094778584,114.79622480022661,116.68794963080177,116.79724873039008,118.9520961057263,118.90421665311605,120.69784946612906,120.89151003814206,123.5632726296101,123.24766752238506,124.89950378104524,125.34232306549225,127.85209578794976,127.70661217654973,129.94882339585882,130.13428155138342,132.0952564697859,132.370616191482,135.07108311335293,135.01884042435603,137.56145171173029,137.62133478591494,140.33078897967857,140.35527330800906,142.89110995582928,142.87825230089533,145.39205315487314,145.5823921945002,148.25222005607853,148.2267618322195,150.68632207547498,150.74375314771112,153.4224977037653,153.4255374999488,156.0465346635725,156.0028863707598,158.90150627466164,158.87241572790666,161.4151249346334,161.5156326978804,163.62750017993474,163.9463284600591,166.82560169326106,166.69634156453773,169.09942698516178,169.24419916027952,172.1723007443566,172.0599806054648,174.6444093334491,174.6081158550394,177.03021450263947,177.10176361151582,180.14120716074885,179.72525106406857,182.59564599152037,182.2939670911588,184.7326792314511,184.7006055377946,186.94536114239676,187.07045981106444,189.46574586383116,189.5103094241485,191.73542821417678,191.6944266534645,193.47413562852392,193.61050992645215,195.98788947680774,195.65988697319796,197.72313675947967,197.59432152513537,199.2957485946026,199.36270926264527,201.54535452548902,201.1699254114176,202.9612575722091,202.80324175336833,203.99277968677674,204.02844674190862],\"y\":[0.0,0.0,-0.13850011810807575,0.02939423931229085,-0.13381703741216905,0.1963922156187688,0.417074606700436,0.48739976802645557,0.5931888596061516,0.8975420139465631,1.6660164621254927,1.439105463384184,2.3091004553384984,2.0241602510657986,2.902239992057652,2.865252709677587,3.7057064616237136,3.812435094226425,4.732297186215907,4.7319518188913925,5.570439099613631,5.841511577402024,6.96207768274138,6.96149099276796,8.088220912268996,8.23137878310161,9.87793323316501,9.586882739667672,10.701214598414257,10.87612054310945,12.087506449146458,12.240627485062115,13.469785685695351,13.63546293004128,14.828876928918119,14.988698682358853,16.552750330156147,16.488563599770824,17.287562064718735,17.52070029078101,19.066735816090596,18.853885430683054,19.903221342300608,19.845232184047987,21.0851041995143,21.033590050334066,21.790939218981407,21.92353337456869,22.781176822257702,22.739763643201762,23.41406612094208,23.58411803335816,23.993270577750035,23.969900994440742,24.359704427415796,24.48928102171255,24.884688795468435,24.76307219447432,24.714955818843208,24.90873395563262,25.258154735020753,25.19326648225177,24.934110251708564,25.127836621606964,25.03412367479903,24.97120400613181,24.87000214543947,24.848381409631195,24.638627219489443,24.73411944325635,24.551813008431893,24.42068544126276,23.80814881274949,23.777806154322622,23.52442322938002,23.497531222498267,22.79144011874045,22.87968265312676,22.304813206635266,22.406635575046373,21.672805244937955,21.899391049061702,21.114277928132605,21.322844165172945,20.954166573301165,20.994917379629626,20.21818631762873,20.398523923388257,19.65843990865857,19.757332259055723,19.694892105126584,19.641055786260196,19.164695790172345,19.01784414385946,18.720201490065634,18.433508730037676,18.374298226818926,18.267020452646324,17.360939935716758,17.346252414074513,16.981653799470863,16.956237210001277,16.541870520829455,16.486769108887813,16.392493110673577,16.119362544808286,15.359410691222228,15.265499705874573,15.260057408946457,15.027455579051198,14.450693503413412,14.234483320956373,14.035849235351629,14.131635166041077,13.672792142985315,13.679905608591493,13.559664107499334,13.384178574319206,12.592882956183582,12.750864176184049,12.477303563799806,12.630999328039145,12.559156391359906,12.451192322833451,12.097353155126413,12.087597032948636,12.003964534036044,12.168459719887368,12.290051215689006,12.260083209408709,12.82800055737522,12.78916913603424,12.778655990870664,12.888456492816962,13.322669868791067,13.257280322102579,13.69915143308757,13.73383551291505,14.503252879067434,14.462296023142853,15.051304664832825,14.905641274046754,16.205609310392145,16.31436863161683,17.019885208680048,17.19576398048579,17.984312238681422,18.046645205184525,19.166391353759632,19.241832164672537,20.47193765300606,20.616161954528714,22.116790603300558,22.03643791157596,23.48869031158666,23.318596292878805,24.808004825897847,24.87657305353883,26.03365223401951,26.067096063713503,27.422384087409842,27.5487054353863,28.7731065988469,28.94955057589845,30.2044991429592,30.057819939523327,31.370867516791613,31.21944469780818,32.340715054260116,32.400866671283595,33.46295321123981,33.57215480641768,34.20451415057002,34.126425350517636,35.13628403552346,35.1590033793527,35.75950255374069,35.83716653575751,36.51074377726786,36.419806320218726,36.943651593388275,36.95225995437127,37.40320586605088,37.30557323889721,37.56446313814522,37.46558466648027,37.279670209953714,37.331875651841365,37.3976584649934,37.37185920037473,37.727128771026244,37.62419893121266,37.29024791638682,37.31260204192366,36.99436409329722,37.03832984738309,36.460672876380585,36.591752856164355,36.194064073441325,36.22529092878557]}},\"id\":\"c4cec058-143f-4fbf-a428-61bd3b156c0b\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"7ba27b29-9c01-4384-8352-301a10f1564d\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"2f23e5d4-2367-4d2e-8a7a-f7d288644b13\",\"type\":\"PanTool\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"teal\"},\"line_color\":{\"value\":\"white\"},\"size\":{\"units\":\"screen\",\"value\":20},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ab00c772-8629-47bf-84f3-39c11308ded2\",\"type\":\"Triangle\"},{\"attributes\":{\"callback\":null},\"id\":\"f8317508-ce19-499d-bfa1-c0ccfcfbcc76\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null},\"id\":\"8ab1f981-8b4f-47c6-9d9f-d12c7d7e3617\",\"type\":\"DataRange1d\"},{\"attributes\":{\"label\":{\"value\":\"state prediction: location\"},\"renderers\":[{\"id\":\"3cc98d42-9741-41ba-b6dc-0eed4cb9edb4\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3a9518d7-a7d9-4786-9b98-8cb8ef326ff6\",\"type\":\"LegendItem\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"97249499-acf8-4cd2-85e0-cddd54d326bd\",\"type\":\"Title\"},{\"attributes\":{\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"44ffee1b-065e-4181-95e8-a17f1e3ecfca\",\"type\":\"ResetTool\"},{\"attributes\":{\"data_source\":{\"id\":\"c4cec058-143f-4fbf-a428-61bd3b156c0b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"ab00c772-8629-47bf-84f3-39c11308ded2\",\"type\":\"Triangle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"4792188e-ca8b-4c67-9d5b-bdcff7b95d7c\",\"type\":\"Triangle\"},\"selection_glyph\":null},\"id\":\"3cc98d42-9741-41ba-b6dc-0eed4cb9edb4\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"formatter\":{\"id\":\"0a77bc52-6768-4fa4-97fc-dc7d213fac8b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"03236e8f-9c68-459c-b5ec-5f1ae3179c86\",\"type\":\"BasicTicker\"}},\"id\":\"31768561-c256-4963-a5c8-a86fb3196155\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"200a7516-07a8-4738-a564-43936c621373\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"ab9e919f-7ae3-4d49-be60-2c4dd8e9e589\",\"type\":\"ToolEvents\"},{\"attributes\":{\"items\":[{\"id\":\"3a9518d7-a7d9-4786-9b98-8cb8ef326ff6\",\"type\":\"LegendItem\"},{\"id\":\"91ed1f6e-6da5-414b-8890-758bfdbfbe01\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"336a2886-f43a-4502-a307-2b9a3f0b6be5\",\"type\":\"Legend\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"grey\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b01f5fba-ed27-4246-9c00-d9aaf9df159c\",\"type\":\"Cross\"},{\"attributes\":{},\"id\":\"21613c9c-245e-4ad8-ae4c-a63d501ac8e6\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"7a953f7d-98e2-49b6-9a58-18a8f6141d45\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b01f5fba-ed27-4246-9c00-d9aaf9df159c\",\"type\":\"Cross\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"d7529600-f23e-4cb0-beb6-10cee81ae5f9\",\"type\":\"Cross\"},\"selection_glyph\":null},\"id\":\"1ca41e6e-cca0-4931-857c-d4a0035b2f5a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"cb84e1a2-fc49-436b-a541-4fc48428ba04\",\"type\":\"SaveTool\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d7529600-f23e-4cb0-beb6-10cee81ae5f9\",\"type\":\"Cross\"},{\"attributes\":{\"formatter\":{\"id\":\"21613c9c-245e-4ad8-ae4c-a63d501ac8e6\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"7ba27b29-9c01-4384-8352-301a10f1564d\",\"type\":\"BasicTicker\"}},\"id\":\"56866e8e-4f8c-4f40-87cb-e319c604230c\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"0a77bc52-6768-4fa4-97fc-dc7d213fac8b\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"1770642a-c17d-4bb1-895f-95d453ab0d3e\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"521bd591-16e5-4dd1-9616-afedfbcb5b96\",\"elementid\":\"1469355b-d08a-4fde-b6bf-a593ad61a3ed\",\"modelid\":\"1770642a-c17d-4bb1-895f-95d453ab0d3e\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"1469355b-d08a-4fde-b6bf-a593ad61a3ed\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################################################################\n",
    "#  STATE WITH ORIENTATION\n",
    "###################################################################\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700)\n",
    "\n",
    "p.triangle(\n",
    "  state_xs, state_ys, size = 20, \n",
    "  fill_color = \"teal\",\n",
    "  line_color = \"white\",\n",
    "  fill_alpha = 0.2,\n",
    "  angle = state_angles, \n",
    "  line_width = 1, \n",
    "  legend = \"state prediction: location\")\n",
    "\n",
    "\n",
    "p.cross(\n",
    "  state_xs, state_ys, size = 5, \n",
    "  line_color = \"grey\",\n",
    "  angle = state_angles, \n",
    "  line_width = 1,\n",
    "  legend = \"state prediction: velocity direction\")\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"3ca3ef2e-29bf-4634-b67e-19a802284d1e\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"3ca3ef2e-29bf-4634-b67e-19a802284d1e\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"3ca3ef2e-29bf-4634-b67e-19a802284d1e\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid '3ca3ef2e-29bf-4634-b67e-19a802284d1e' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"9f0c2cd4-a460-4ad1-9826-f0436c1e6f9e\":{\"roots\":{\"references\":[{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"93e5a228-1780-4fde-b9a4-207c557256d0\",\"type\":\"BasicTicker\"}},\"id\":\"3707c877-ebdf-4a50-a564-3017f4441425\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2ce447f3-8e14-4c90-9220-751c48fed281\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4a1835aa-9d87-4507-953d-80c2e9aa27ea\",\"type\":\"Cross\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"2dac7fe0-a296-44c1-aacb-79c58898a8f6\",\"type\":\"Cross\"},\"selection_glyph\":null},\"id\":\"125c3b0c-0271-454e-a3c4-4f7f871d6b5e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"c22e0e46-7983-4a57-bc94-a0cbf7b29fc7\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.71238898038469,6.23343511835845,6.23343511835845,6.184431751552337,6.184431751552337,6.13666495819489,6.13666495819489,6.0906118609809,6.0906118609809,6.046732820474743,6.046732820474743,6.0054660266879445,6.0054660266879445,5.967223903666774,5.967223903666774,5.932388530542976,5.932388530542976,5.9013078480702275,5.9013078480702275,5.874292743279611,5.874292743279611,5.8516131119477235,5.8516131119477235,5.833495134807306,5.833495134807306,5.8201202615357435,5.8201202615357435,5.811621884852017,5.811621884852017,5.808084914894487,5.808084914894487,5.8095449568557065,5.8095449568557065,5.815987469203411,5.815987469203411,5.8273474316448155,5.8273474316448155,5.843511821987934,5.843511821987934,5.8643193313517195,5.8643193313517195,5.889561442635366,5.889561442635366,5.918986583258233,5.918986583258233,5.9523003449896805,5.9523003449896805,5.989170015049645,5.989170015049645,6.029227223516209,6.029227223516209,6.072071700496288,6.072071700496288,6.117275278915084,6.117275278915084,6.164386368906841,6.164386368906841,6.212934329414636,6.212934329414636,6.2624339239571505,6.2624339239571505,6.312390679849937,6.312390679849937,6.362305400743542,6.362305400743542,6.411679394704957,6.411679394704957,6.460019360056131,6.460019360056131,6.506842201439444,6.506842201439444,6.551680031666482,6.551680031666482,6.594084999834339,6.594084999834339,6.633633438260151,6.633633438260151,6.669930127292723,6.669930127292723,6.702612313955305,6.702612313955305,6.731353351880845,6.731353351880845,6.755866527731952,6.755866527731952,6.775906422547919,6.775906422547919,6.791273146572108,6.791273146572108,6.801812903440698,6.801812903440698,6.807420557864043,6.807420557864043,6.808039975219632,6.808039975219632,6.8036649860749385,6.8036649860749385,6.794339350581513,6.794339350581513,6.780156285198855,6.780156285198855,6.761257422050781,6.761257422050781,6.737831631385711,6.737831631385711,6.7101127514767525,6.7101127514767525,6.678378091288306,6.678378091288306,6.6429447704586,6.6429447704586,6.604166344691919,6.604166344691919,6.562430773179212,6.562430773179212,6.518154793125488,6.518154793125488,6.471780866074636,6.471780866074636,6.423772331271722,6.423772331271722,6.374608946609808,6.374608946609808,6.324781834552386,6.324781834552386,6.274788901657644,6.274788901657644,6.225129657012046,6.225129657012046,6.1763002803639,6.1763002803639,6.128788627480038,6.128788627480038,6.083069523204981,6.083069523204981,6.0395996224102415,6.0395996224102415,5.998813385500947,5.998813385500947,5.961118220133709,5.961118220133709,5.926890927739345,5.926890927739345,5.896473252226108,5.896473252226108,5.870169596414117,5.870169596414117,5.848242164563719,5.848242164563719,5.8309104046039355,5.8309104046039355,5.818347290610982,5.818347290610982,5.810678750296788,5.810678750296788,5.807980939661334,5.807980939661334,5.81028109981428,5.81028109981428,5.817555880037132,5.817555880037132,5.829733179876338,5.829733179876338,5.8466909339567295,5.8466909339567295,5.868259810339435,5.868259810339435,5.894224128618611,5.894224128618611,5.924324869897839,5.924324869897839,5.9582608314524395,5.9582608314524395,5.995693161617674,5.995693161617674,6.036247832601666,6.036247832601666,6.079519541948399,6.079519541948399,6.125076081987474,6.125076081987474,6.17246215169353,6.17246215169353,6.221204314374761,6.221204314374761,6.270815598183071,6.270815598183071,6.3208002520755135,6.3208002520755135,6.370658836425947,6.370658836425947,6.419893237504574,6.419893237504574,6.468011494643307,6.468011494643307,6.5145328682405825,6.5145328682405825,6.5589924177704635,6.5589924177704635],\"x\":[0.0,0.0,2.098967,2.098967,4.291359,4.291359,6.569422,6.569422,8.924371,8.924371,11.34677,11.34677,13.82695,13.82695,16.35537,16.35537,18.92299,18.92299,21.52152,21.52152,24.14369,24.14369,26.78329,26.78329,29.43523,29.43523,32.09547,32.09547,34.76081,34.76081,37.42874,37.42874,40.09711,40.09711,42.76381,42.76381,45.42651,45.42651,48.08234,48.08234,50.72763,50.72763,53.35773,53.35773,55.96692,55.96692,58.54835,58.54835,61.09413,61.09413,63.59551,63.59551,66.04312,66.04312,68.4273,68.4273,70.73845,70.73845,72.96749,72.96749,75.10617,75.10617,77.14752,77.14752,79.0861,79.0861,80.91825,80.91825,82.64225,82.64225,84.25837,84.25837,85.7688,85.7688,87.1776,87.1776,88.49045,88.49045,89.71448,89.71448,90.85799,90.85799,91.93022,91.93022,92.94111,92.94111,93.90109,93.90109,94.82094,94.82094,95.71161,95.71161,96.58418,96.58418,97.44996,97.44996,98.31977,98.31977,99.20492,99.20492,100.1165,100.1165,101.0655,101.0655,102.0628,102.0628,103.1189,103.1189,104.2439,104.2439,105.4471,105.4471,106.7373,106.7373,108.1217,108.1217,109.6065,109.6065,111.1961,111.1961,112.8933,112.8933,114.6988,114.6988,116.6112,116.6112,118.6276,118.6276,120.7427,120.7427,122.9501,122.9501,125.2417,125.2417,127.6087,127.6087,130.0415,130.0415,132.5304,132.5304,135.066,135.066,137.6394,137.6394,140.2424,140.2424,142.8679,142.8679,145.5099,145.5099,148.1635,148.1635,150.8248,150.8248,153.4907,153.4907,156.1589,156.1589,158.8271,158.8271,161.4933,161.4933,164.1551,164.1551,166.8094,166.8094,169.4525,169.4525,172.0795,172.0795,174.6846,174.6846,177.2606,177.2606,179.7995,179.7995,182.2925,182.2925,184.7302,184.7302,187.1027,187.1027,189.4007,189.4007,191.6151,191.6151,193.7378,193.7378,195.7622,195.7622,197.6831,197.6831,199.4972,199.4972,201.2029,201.2029,202.8011,202.8011,204.2941,204.2941],\"y\":[0.0,0.0,0.0522228,0.0522228,0.2153118,0.2153118,0.4960956,0.4960956,0.8992403,0.8992403,1.426997,1.426997,2.079045,2.079045,2.852433,2.852433,3.74161,3.74161,4.738551,4.738551,5.832949,5.832949,7.012457,7.012457,8.262985,8.262985,9.569013,9.569013,10.91392,10.91392,12.28034,12.28034,13.65048,13.65048,15.00648,15.00648,16.33075,16.33075,17.60632,17.60632,18.81717,18.81717,19.94857,19.94857,20.98742,20.98742,21.92253,21.92253,22.7449,22.7449,23.44793,23.44793,24.02757,24.02757,24.48242,24.48242,24.81366,24.81366,25.02499,25.02499,25.12237,25.12237,25.11374,25.11374,25.00864,25.00864,24.81776,24.81776,24.5525,24.5525,24.22449,24.22449,23.84512,23.84512,23.42518,23.42518,22.97451,22.97451,22.50173,22.50173,22.01409,22.01409,21.51741,21.51741,21.01603,21.01603,20.51295,20.51295,20.00996,20.00996,19.50782,19.50782,19.00655,19.00655,18.50597,18.50597,18.00486,18.00486,17.50296,17.50296,17.00014,17.00014,16.49696,16.49696,15.99493,15.99493,15.49673,15.49673,15.00637,15.00637,14.52929,14.52929,14.07238,14.07238,13.64396,13.64396,13.25356,13.25356,12.91178,12.91178,12.62989,12.62989,12.4195,12.4195,12.29211,12.29211,12.25864,12.25864,12.32894,12.32894,12.5114,12.5114,12.8125,12.8125,13.23651,13.23651,13.78526,13.78526,14.45798,14.45798,15.2513,15.2513,16.15922,16.15922,17.17333,17.17333,18.28295,18.28295,19.47543,19.47543,20.73641,20.73641,22.05016,22.05016,23.39992,23.39992,24.76822,24.76822,26.13723,26.13723,27.48911,27.48911,28.80636,28.80636,30.07213,30.07213,31.27061,31.27061,32.38732,32.38732,33.40945,33.40945,34.32617,34.32617,35.12887,35.12887,35.81136,35.81136,36.37004,36.37004,36.80395,36.80395,37.11471,37.11471,37.3064,37.3064,37.38535,37.38535,37.3598,37.3598,37.2395,37.2395,37.03531,37.03531,36.75869,36.75869,36.42125,36.42125,36.03433,36.03433]}},\"id\":\"2ce447f3-8e14-4c90-9220-751c48fed281\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"427590fc-9156-4a77-95a5-47d75a691049\",\"type\":\"ToolEvents\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"index\",\"$index\"],[\"x , y\",\"$x, $y\"],[\"angle radians\",\"@angle\"]]},\"id\":\"2c6d9739-e1ab-4823-a866-c0379327651c\",\"type\":\"HoverTool\"},{\"attributes\":{\"label\":{\"value\":\"velocity direction\"},\"renderers\":[{\"id\":\"125c3b0c-0271-454e-a3c4-4f7f871d6b5e\",\"type\":\"GlyphRenderer\"}]},\"id\":\"7fbb6ef3-8efb-4d92-bfd9-d88d2f047d3c\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2acf2d2c-5152-4a3d-992f-cd12f94dff7b\",\"type\":\"BasicTicker\"},{\"attributes\":{\"formatter\":{\"id\":\"4897c0ad-e501-4679-9303-94b5fd19ed8b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"93e5a228-1780-4fde-b9a4-207c557256d0\",\"type\":\"BasicTicker\"}},\"id\":\"2f62ccae-e1d7-4836-8f15-7803ddbb46cc\",\"type\":\"LinearAxis\"},{\"attributes\":{\"formatter\":{\"id\":\"78dffaff-ccca-4042-9f20-438bc013a3d7\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"2acf2d2c-5152-4a3d-992f-cd12f94dff7b\",\"type\":\"BasicTicker\"}},\"id\":\"83b8bacf-d723-45fc-853f-09f679bc02eb\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"2acf2d2c-5152-4a3d-992f-cd12f94dff7b\",\"type\":\"BasicTicker\"}},\"id\":\"dd162cb5-6159-4f24-806b-ffe2c35a274e\",\"type\":\"Grid\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"grey\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4a1835aa-9d87-4507-953d-80c2e9aa27ea\",\"type\":\"Cross\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2c6d9739-e1ab-4823-a866-c0379327651c\",\"type\":\"HoverTool\"}]},\"id\":\"b00f38d2-8eac-466e-8bc6-996d69b19a79\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null},\"id\":\"bba0c8c2-3834-486d-b61d-f71611a0f4bf\",\"type\":\"DataRange1d\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d4bac8f9-2fea-4efb-a8ca-3603e143b5f0\",\"type\":\"Triangle\"},{\"attributes\":{\"callback\":null},\"id\":\"3e961a0f-d0d9-4789-a706-545e742b4a0c\",\"type\":\"DataRange1d\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2dac7fe0-a296-44c1-aacb-79c58898a8f6\",\"type\":\"Cross\"},{\"attributes\":{\"items\":[{\"id\":\"851054d8-bf96-46e0-9e55-9304d2adfffd\",\"type\":\"LegendItem\"},{\"id\":\"7fbb6ef3-8efb-4d92-bfd9-d88d2f047d3c\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"fb38b516-efa5-4401-ac18-7a52c7c649d9\",\"type\":\"Legend\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"white\"},\"size\":{\"units\":\"screen\",\"value\":15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3e6a69ae-e349-4971-9464-49e316489513\",\"type\":\"Triangle\"},{\"attributes\":{},\"id\":\"4897c0ad-e501-4679-9303-94b5fd19ed8b\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"2ce447f3-8e14-4c90-9220-751c48fed281\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3e6a69ae-e349-4971-9464-49e316489513\",\"type\":\"Triangle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"d4bac8f9-2fea-4efb-a8ca-3603e143b5f0\",\"type\":\"Triangle\"},\"selection_glyph\":null},\"id\":\"e843350a-64a8-4e68-a2cf-d62daedfbdbe\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"ground truth\"},\"renderers\":[{\"id\":\"e843350a-64a8-4e68-a2cf-d62daedfbdbe\",\"type\":\"GlyphRenderer\"}]},\"id\":\"851054d8-bf96-46e0-9e55-9304d2adfffd\",\"type\":\"LegendItem\"},{\"attributes\":{\"below\":[{\"id\":\"83b8bacf-d723-45fc-853f-09f679bc02eb\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"2f62ccae-e1d7-4836-8f15-7803ddbb46cc\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"83b8bacf-d723-45fc-853f-09f679bc02eb\",\"type\":\"LinearAxis\"},{\"id\":\"dd162cb5-6159-4f24-806b-ffe2c35a274e\",\"type\":\"Grid\"},{\"id\":\"2f62ccae-e1d7-4836-8f15-7803ddbb46cc\",\"type\":\"LinearAxis\"},{\"id\":\"3707c877-ebdf-4a50-a564-3017f4441425\",\"type\":\"Grid\"},{\"id\":\"fb38b516-efa5-4401-ac18-7a52c7c649d9\",\"type\":\"Legend\"},{\"id\":\"e843350a-64a8-4e68-a2cf-d62daedfbdbe\",\"type\":\"GlyphRenderer\"},{\"id\":\"125c3b0c-0271-454e-a3c4-4f7f871d6b5e\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"c22e0e46-7983-4a57-bc94-a0cbf7b29fc7\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"427590fc-9156-4a77-95a5-47d75a691049\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"b00f38d2-8eac-466e-8bc6-996d69b19a79\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"3e961a0f-d0d9-4789-a706-545e742b4a0c\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"bba0c8c2-3834-486d-b61d-f71611a0f4bf\",\"type\":\"DataRange1d\"}},\"id\":\"4623ffed-307a-4c92-9199-51365586d216\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"93e5a228-1780-4fde-b9a4-207c557256d0\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"78dffaff-ccca-4042-9f20-438bc013a3d7\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"4623ffed-307a-4c92-9199-51365586d216\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"9f0c2cd4-a460-4ad1-9826-f0436c1e6f9e\",\"elementid\":\"3ca3ef2e-29bf-4634-b67e-19a802284d1e\",\"modelid\":\"4623ffed-307a-4c92-9199-51365586d216\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"3ca3ef2e-29bf-4634-b67e-19a802284d1e\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################################################################\n",
    "#  GROUND TRUTH WITH ORIENTATION\n",
    "###################################################################\n",
    "\n",
    "hover4 = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700, tools = [hover4])\n",
    "\n",
    "p.triangle(\n",
    "  'x', 'y', size = 15, \n",
    "  fill_color = \"red\",\n",
    "  line_color = \"white\",\n",
    "  fill_alpha = 0.2,\n",
    "  angle = 'angle', \n",
    "  line_width = 1,\n",
    "  legend = \"ground truth\",\n",
    "  source = truth_source)\n",
    "\n",
    "\n",
    "p.cross(\n",
    "  'x', 'y', size = 5, \n",
    "  line_color = \"grey\",\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"velocity direction\", \n",
    "  source = truth_source)\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"b7894be9-afb4-42c3-b48e-8d4453078d78\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"b7894be9-afb4-42c3-b48e-8d4453078d78\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"b7894be9-afb4-42c3-b48e-8d4453078d78\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'b7894be9-afb4-42c3-b48e-8d4453078d78' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"f03743d5-4743-4a08-9941-df9518c24522\":{\"roots\":{\"references\":[{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"48f9224e-34ce-43d1-9791-d922408b6b4f\",\"type\":\"HoverTool\"}]},\"id\":\"29d57c11-db39-4233-b129-510e085f6c59\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"30bba398-097b-4c75-a278-68ebb9c2e0a9\",\"type\":\"Title\"},{\"attributes\":{\"data_source\":{\"id\":\"942caf93-76c0-412f-9ad8-3f446d76d646\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"c30e9505-a895-4b2c-b319-a97373d8452c\",\"type\":\"Triangle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"fb2f4f82-667b-4b14-88b0-f95dca8975d0\",\"type\":\"Triangle\"},\"selection_glyph\":null},\"id\":\"34ac72a1-8cf4-412d-bdcb-ae94e59a0168\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":20},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fb2f4f82-667b-4b14-88b0-f95dca8975d0\",\"type\":\"Triangle\"},{\"attributes\":{\"callback\":null},\"id\":\"f161eb21-a255-4f25-8c18-0f7716f3b04e\",\"type\":\"DataRange1d\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"teal\"},\"line_color\":{\"value\":\"white\"},\"size\":{\"units\":\"screen\",\"value\":20},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c30e9505-a895-4b2c-b319-a97373d8452c\",\"type\":\"Triangle\"},{\"attributes\":{\"below\":[{\"id\":\"dd5cf3b9-3afd-4f72-b048-0cd56bff3cbd\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"069e88c1-2951-4ab7-b8de-54e422f9a9ce\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"dd5cf3b9-3afd-4f72-b048-0cd56bff3cbd\",\"type\":\"LinearAxis\"},{\"id\":\"2fa2ae03-743f-4c92-b1ce-7d85087ee161\",\"type\":\"Grid\"},{\"id\":\"069e88c1-2951-4ab7-b8de-54e422f9a9ce\",\"type\":\"LinearAxis\"},{\"id\":\"3e7f8839-cc84-4dce-8adf-dce94c223e2b\",\"type\":\"Grid\"},{\"id\":\"4d96b929-5b6e-49e1-a04a-2e5979b67d0c\",\"type\":\"Legend\"},{\"id\":\"34ac72a1-8cf4-412d-bdcb-ae94e59a0168\",\"type\":\"GlyphRenderer\"},{\"id\":\"ec783e59-1bd4-45a9-a2a3-720a984fdd1a\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"30bba398-097b-4c75-a278-68ebb9c2e0a9\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"8372253e-ff17-4e1d-9755-ed6bdda17ff6\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"29d57c11-db39-4233-b129-510e085f6c59\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"8b981c08-270d-4358-aa34-b8c4d3860292\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"f161eb21-a255-4f25-8c18-0f7716f3b04e\",\"type\":\"DataRange1d\"}},\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"index\",\"$index\"],[\"x , y\",\"$x, $y\"],[\"angle radians\",\"@angle\"]]},\"id\":\"48f9224e-34ce-43d1-9791-d922408b6b4f\",\"type\":\"HoverTool\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"grey\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"bd3e8622-e5ae-427e-b63e-5f5354695654\",\"type\":\"X\"},{\"attributes\":{},\"id\":\"04862fb0-6f7f-4e3b-bbf5-268aa21cf468\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.71238898038469,6.23343511835845,6.23343511835845,6.184431751552337,6.184431751552337,6.13666495819489,6.13666495819489,6.0906118609809,6.0906118609809,6.046732820474743,6.046732820474743,6.0054660266879445,6.0054660266879445,5.967223903666774,5.967223903666774,5.932388530542976,5.932388530542976,5.9013078480702275,5.9013078480702275,5.874292743279611,5.874292743279611,5.8516131119477235,5.8516131119477235,5.833495134807306,5.833495134807306,5.8201202615357435,5.8201202615357435,5.811621884852017,5.811621884852017,5.808084914894487,5.808084914894487,5.8095449568557065,5.8095449568557065,5.815987469203411,5.815987469203411,5.8273474316448155,5.8273474316448155,5.843511821987934,5.843511821987934,5.8643193313517195,5.8643193313517195,5.889561442635366,5.889561442635366,5.918986583258233,5.918986583258233,5.9523003449896805,5.9523003449896805,5.989170015049645,5.989170015049645,6.029227223516209,6.029227223516209,6.072071700496288,6.072071700496288,6.117275278915084,6.117275278915084,6.164386368906841,6.164386368906841,6.212934329414636,6.212934329414636,6.2624339239571505,6.2624339239571505,6.312390679849937,6.312390679849937,6.362305400743542,6.362305400743542,6.411679394704957,6.411679394704957,6.460019360056131,6.460019360056131,6.506842201439444,6.506842201439444,6.551680031666482,6.551680031666482,6.594084999834339,6.594084999834339,6.633633438260151,6.633633438260151,6.669930127292723,6.669930127292723,6.702612313955305,6.702612313955305,6.731353351880845,6.731353351880845,6.755866527731952,6.755866527731952,6.775906422547919,6.775906422547919,6.791273146572108,6.791273146572108,6.801812903440698,6.801812903440698,6.807420557864043,6.807420557864043,6.808039975219632,6.808039975219632,6.8036649860749385,6.8036649860749385,6.794339350581513,6.794339350581513,6.780156285198855,6.780156285198855,6.761257422050781,6.761257422050781,6.737831631385711,6.737831631385711,6.7101127514767525,6.7101127514767525,6.678378091288306,6.678378091288306,6.6429447704586,6.6429447704586,6.604166344691919,6.604166344691919,6.562430773179212,6.562430773179212,6.518154793125488,6.518154793125488,6.471780866074636,6.471780866074636,6.423772331271722,6.423772331271722,6.374608946609808,6.374608946609808,6.324781834552386,6.324781834552386,6.274788901657644,6.274788901657644,6.225129657012046,6.225129657012046,6.1763002803639,6.1763002803639,6.128788627480038,6.128788627480038,6.083069523204981,6.083069523204981,6.0395996224102415,6.0395996224102415,5.998813385500947,5.998813385500947,5.961118220133709,5.961118220133709,5.926890927739345,5.926890927739345,5.896473252226108,5.896473252226108,5.870169596414117,5.870169596414117,5.848242164563719,5.848242164563719,5.8309104046039355,5.8309104046039355,5.818347290610982,5.818347290610982,5.810678750296788,5.810678750296788,5.807980939661334,5.807980939661334,5.81028109981428,5.81028109981428,5.817555880037132,5.817555880037132,5.829733179876338,5.829733179876338,5.8466909339567295,5.8466909339567295,5.868259810339435,5.868259810339435,5.894224128618611,5.894224128618611,5.924324869897839,5.924324869897839,5.9582608314524395,5.9582608314524395,5.995693161617674,5.995693161617674,6.036247832601666,6.036247832601666,6.079519541948399,6.079519541948399,6.125076081987474,6.125076081987474,6.17246215169353,6.17246215169353,6.221204314374761,6.221204314374761,6.270815598183071,6.270815598183071,6.3208002520755135,6.3208002520755135,6.370658836425947,6.370658836425947,6.419893237504574,6.419893237504574,6.468011494643307,6.468011494643307,6.5145328682405825,6.5145328682405825,6.5589924177704635,6.5589924177704635],\"x\":[0.0,0.0,1.5594294407139864,1.6997642436040528,3.8917923855664487,4.06381861083907,6.86063400846729,6.598257790897028,9.077398062364205,9.016314160276366,11.574745880131799,11.511240292875755,13.595201582532296,13.766550957474472,16.64141195103766,16.390098776978668,19.01115821017751,19.088953487623748,21.33291794508709,21.537740411841565,24.079169869579506,24.288247410135753,26.609664464100984,26.761889508058754,29.58444339441153,29.479214053423103,31.943999680604378,31.975171255785632,34.61392371556521,34.739557383541765,37.144076218761256,37.3720875206958,40.32560399006981,40.06457705439623,42.766787310184505,42.69864697597086,45.35728563972067,45.485851243239495,48.155391928391246,48.082423174589586,50.62276929421176,50.60247146869716,53.72170641880972,53.50139666603117,56.0352599784601,55.970221950077814,58.65883888750275,58.59105728059672,60.87795726743112,60.95163997425266,63.37964427421494,63.48131546855045,66.3392116463772,66.04160308973533,68.26215491736463,68.4457591883614,70.82859089827669,70.81177222188988,72.89371997278187,72.98954765866793,75.00303489263688,75.01250966950117,77.12161218641057,77.05929212027051,79.10777409449865,79.06626857878656,80.80863382334134,80.93052112993357,82.62158561165299,82.54529929887109,84.17243834980827,84.21476644994489,85.64035403065675,85.82342986489931,86.94772941066692,87.23774969920835,88.82005814786982,88.61019030525492,89.50104744914198,89.67766459525275,90.5133150525439,90.69187436632792,91.71943895675632,91.85047642501232,92.85986939282726,93.0081734275299,93.47177282711581,93.7560649147808,95.31731144750817,94.80124987945607,95.50556635209328,95.58106786662978,96.26447993756973,96.42932811974242,97.5275466202392,97.46846858046455,98.21192238024696,98.3223934179667,99.03712209402433,99.11506721006639,99.99806489187743,100.15077401027625,101.20236200956009,101.16537769337545,102.38557300520951,102.20922608989436,103.00484418117264,103.04388987112561,104.11448681762992,104.04263117852474,105.5373958011511,105.38381549292414,106.8312003565689,106.65838139704964,108.08199499708465,108.12015405695934,109.536557221145,109.51798444739792,111.06120666540242,111.19860005730496,112.91383001133056,112.88643333921839,114.7987094778584,114.79622480022661,116.68794963080177,116.79724873039008,118.9520961057263,118.90421665311605,120.69784946612906,120.89151003814206,123.5632726296101,123.24766752238506,124.89950378104524,125.34232306549225,127.85209578794976,127.70661217654973,129.94882339585882,130.13428155138342,132.0952564697859,132.370616191482,135.07108311335293,135.01884042435603,137.56145171173029,137.62133478591494,140.33078897967857,140.35527330800906,142.89110995582928,142.87825230089533,145.39205315487314,145.5823921945002,148.25222005607853,148.2267618322195,150.68632207547498,150.74375314771112,153.4224977037653,153.4255374999488,156.0465346635725,156.0028863707598,158.90150627466164,158.87241572790666,161.4151249346334,161.5156326978804,163.62750017993474,163.9463284600591,166.82560169326106,166.69634156453773,169.09942698516178,169.24419916027952,172.1723007443566,172.0599806054648,174.6444093334491,174.6081158550394,177.03021450263947,177.10176361151582,180.14120716074885,179.72525106406857,182.59564599152037,182.2939670911588,184.7326792314511,184.7006055377946,186.94536114239676,187.07045981106444,189.46574586383116,189.5103094241485,191.73542821417678,191.6944266534645,193.47413562852392,193.61050992645215,195.98788947680774,195.65988697319796,197.72313675947967,197.59432152513537,199.2957485946026,199.36270926264527,201.54535452548902,201.1699254114176,202.9612575722091,202.80324175336833,203.99277968677674,204.02844674190862],\"y\":[0.0,0.0,-0.13850011810807575,0.02939423931229085,-0.13381703741216905,0.1963922156187688,0.417074606700436,0.48739976802645557,0.5931888596061516,0.8975420139465631,1.6660164621254927,1.439105463384184,2.3091004553384984,2.0241602510657986,2.902239992057652,2.865252709677587,3.7057064616237136,3.812435094226425,4.732297186215907,4.7319518188913925,5.570439099613631,5.841511577402024,6.96207768274138,6.96149099276796,8.088220912268996,8.23137878310161,9.87793323316501,9.586882739667672,10.701214598414257,10.87612054310945,12.087506449146458,12.240627485062115,13.469785685695351,13.63546293004128,14.828876928918119,14.988698682358853,16.552750330156147,16.488563599770824,17.287562064718735,17.52070029078101,19.066735816090596,18.853885430683054,19.903221342300608,19.845232184047987,21.0851041995143,21.033590050334066,21.790939218981407,21.92353337456869,22.781176822257702,22.739763643201762,23.41406612094208,23.58411803335816,23.993270577750035,23.969900994440742,24.359704427415796,24.48928102171255,24.884688795468435,24.76307219447432,24.714955818843208,24.90873395563262,25.258154735020753,25.19326648225177,24.934110251708564,25.127836621606964,25.03412367479903,24.97120400613181,24.87000214543947,24.848381409631195,24.638627219489443,24.73411944325635,24.551813008431893,24.42068544126276,23.80814881274949,23.777806154322622,23.52442322938002,23.497531222498267,22.79144011874045,22.87968265312676,22.304813206635266,22.406635575046373,21.672805244937955,21.899391049061702,21.114277928132605,21.322844165172945,20.954166573301165,20.994917379629626,20.21818631762873,20.398523923388257,19.65843990865857,19.757332259055723,19.694892105126584,19.641055786260196,19.164695790172345,19.01784414385946,18.720201490065634,18.433508730037676,18.374298226818926,18.267020452646324,17.360939935716758,17.346252414074513,16.981653799470863,16.956237210001277,16.541870520829455,16.486769108887813,16.392493110673577,16.119362544808286,15.359410691222228,15.265499705874573,15.260057408946457,15.027455579051198,14.450693503413412,14.234483320956373,14.035849235351629,14.131635166041077,13.672792142985315,13.679905608591493,13.559664107499334,13.384178574319206,12.592882956183582,12.750864176184049,12.477303563799806,12.630999328039145,12.559156391359906,12.451192322833451,12.097353155126413,12.087597032948636,12.003964534036044,12.168459719887368,12.290051215689006,12.260083209408709,12.82800055737522,12.78916913603424,12.778655990870664,12.888456492816962,13.322669868791067,13.257280322102579,13.69915143308757,13.73383551291505,14.503252879067434,14.462296023142853,15.051304664832825,14.905641274046754,16.205609310392145,16.31436863161683,17.019885208680048,17.19576398048579,17.984312238681422,18.046645205184525,19.166391353759632,19.241832164672537,20.47193765300606,20.616161954528714,22.116790603300558,22.03643791157596,23.48869031158666,23.318596292878805,24.808004825897847,24.87657305353883,26.03365223401951,26.067096063713503,27.422384087409842,27.5487054353863,28.7731065988469,28.94955057589845,30.2044991429592,30.057819939523327,31.370867516791613,31.21944469780818,32.340715054260116,32.400866671283595,33.46295321123981,33.57215480641768,34.20451415057002,34.126425350517636,35.13628403552346,35.1590033793527,35.75950255374069,35.83716653575751,36.51074377726786,36.419806320218726,36.943651593388275,36.95225995437127,37.40320586605088,37.30557323889721,37.56446313814522,37.46558466648027,37.279670209953714,37.331875651841365,37.3976584649934,37.37185920037473,37.727128771026244,37.62419893121266,37.29024791638682,37.31260204192366,36.99436409329722,37.03832984738309,36.460672876380585,36.591752856164355,36.194064073441325,36.22529092878557]}},\"id\":\"942caf93-76c0-412f-9ad8-3f446d76d646\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"state prediction: location\"},\"renderers\":[{\"id\":\"34ac72a1-8cf4-412d-bdcb-ae94e59a0168\",\"type\":\"GlyphRenderer\"}]},\"id\":\"53b5ad91-a848-4e57-b540-c0dae711a223\",\"type\":\"LegendItem\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"2b6d28dd-e75b-49db-87b7-7d0f183e1a7a\",\"type\":\"BasicTicker\"}},\"id\":\"3e7f8839-cc84-4dce-8adf-dce94c223e2b\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"942caf93-76c0-412f-9ad8-3f446d76d646\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"bd3e8622-e5ae-427e-b63e-5f5354695654\",\"type\":\"X\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"1807ef6e-0d1c-4592-87da-d336b4bf285e\",\"type\":\"X\"},\"selection_glyph\":null},\"id\":\"ec783e59-1bd4-45a9-a2a3-720a984fdd1a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"63d8566a-99bc-4719-adc4-be8da07fe5bb\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"8b981c08-270d-4358-aa34-b8c4d3860292\",\"type\":\"DataRange1d\"},{\"attributes\":{\"label\":{\"value\":\"state prediction: velocity directions\"},\"renderers\":[{\"id\":\"ec783e59-1bd4-45a9-a2a3-720a984fdd1a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"92f40fe5-98fb-4a8f-b79d-b06d067eff67\",\"type\":\"LegendItem\"},{\"attributes\":{\"items\":[{\"id\":\"53b5ad91-a848-4e57-b540-c0dae711a223\",\"type\":\"LegendItem\"},{\"id\":\"92f40fe5-98fb-4a8f-b79d-b06d067eff67\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"4d96b929-5b6e-49e1-a04a-2e5979b67d0c\",\"type\":\"Legend\"},{\"attributes\":{\"plot\":{\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"04862fb0-6f7f-4e3b-bbf5-268aa21cf468\",\"type\":\"BasicTicker\"}},\"id\":\"2fa2ae03-743f-4c92-b1ce-7d85087ee161\",\"type\":\"Grid\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1807ef6e-0d1c-4592-87da-d336b4bf285e\",\"type\":\"X\"},{\"attributes\":{},\"id\":\"8372253e-ff17-4e1d-9755-ed6bdda17ff6\",\"type\":\"ToolEvents\"},{\"attributes\":{\"formatter\":{\"id\":\"63d8566a-99bc-4719-adc4-be8da07fe5bb\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"04862fb0-6f7f-4e3b-bbf5-268aa21cf468\",\"type\":\"BasicTicker\"}},\"id\":\"dd5cf3b9-3afd-4f72-b048-0cd56bff3cbd\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"5efaa87f-53ce-469b-9cf3-f400d22053f4\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2b6d28dd-e75b-49db-87b7-7d0f183e1a7a\",\"type\":\"BasicTicker\"},{\"attributes\":{\"formatter\":{\"id\":\"5efaa87f-53ce-469b-9cf3-f400d22053f4\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"2b6d28dd-e75b-49db-87b7-7d0f183e1a7a\",\"type\":\"BasicTicker\"}},\"id\":\"069e88c1-2951-4ab7-b8de-54e422f9a9ce\",\"type\":\"LinearAxis\"}],\"root_ids\":[\"14a2dc6f-b35d-411e-b331-6ff0effab335\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"f03743d5-4743-4a08-9941-df9518c24522\",\"elementid\":\"b7894be9-afb4-42c3-b48e-8d4453078d78\",\"modelid\":\"14a2dc6f-b35d-411e-b331-6ff0effab335\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"b7894be9-afb4-42c3-b48e-8d4453078d78\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################################################################\n",
    "#  STATE WITH ORIENTATION\n",
    "###################################################################\n",
    "\n",
    "hover5 = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700, tools = [hover5])\n",
    "\n",
    "p.triangle(\n",
    "  'x', 'y', size = 20, \n",
    "  fill_color = \"teal\",\n",
    "  line_color = \"white\",\n",
    "  fill_alpha = 0.2,\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"state prediction: location\", \n",
    "  source = state_source)\n",
    "\n",
    "\n",
    "p.x(\n",
    "  'x', 'y', size = 5, \n",
    "  line_color = \"grey\",\n",
    "  angle = 'angle', \n",
    "  line_width = 1,\n",
    "  legend = \"state prediction: velocity directions\",\n",
    "  source = state_source)\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"81f57583-2dc7-434e-886d-976f62fbd3d4\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"81f57583-2dc7-434e-886d-976f62fbd3d4\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"81f57583-2dc7-434e-886d-976f62fbd3d4\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid '81f57583-2dc7-434e-886d-976f62fbd3d4' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"6148c1df-f78e-459b-af60-ac57d5fcb830\":{\"roots\":{\"references\":[{\"attributes\":{\"data_source\":{\"id\":\"2b18215c-9f67-4ba0-a64d-bdb6b7182151\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3bcc13c5-634f-4a36-8208-52fa1bee35b0\",\"type\":\"Circle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"5c66ce33-2f9f-4b23-b393-00f4de752de1\",\"type\":\"Circle\"},\"selection_glyph\":null},\"id\":\"a8e6e728-391e-4700-ad10-d9373997aba6\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"6c27a9ec-353d-40eb-82b3-ef940e945466\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"097b8f64-58d5-40e7-8143-b94a8f89d146\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"6fba56c5-8d4a-4dad-becb-1de2605a82c1\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5c66ce33-2f9f-4b23-b393-00f4de752de1\",\"type\":\"Circle\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"black\"},\"size\":{\"units\":\"screen\",\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f7415e37-7717-4b4f-8bea-ae23fed2fa48\",\"type\":\"Triangle\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":0.5},\"size\":{\"units\":\"screen\",\"value\":7},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"40ab311c-842e-4903-a059-1b23ec9018e9\",\"type\":\"Triangle\"},{\"attributes\":{\"data_source\":{\"id\":\"942caf93-76c0-412f-9ad8-3f446d76d646\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"f7415e37-7717-4b4f-8bea-ae23fed2fa48\",\"type\":\"Triangle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"3a03c61a-aa82-4ec4-89d4-44c1b03548b2\",\"type\":\"Triangle\"},\"selection_glyph\":null},\"id\":\"9eadd4ab-0a21-41c9-a67a-61ed9659db43\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3a03c61a-aa82-4ec4-89d4-44c1b03548b2\",\"type\":\"Triangle\"},{\"attributes\":{\"label\":{\"value\":\"radar measurements\"},\"renderers\":[{\"id\":\"23d8e287-a216-4db7-9d69-b7352241d9d9\",\"type\":\"GlyphRenderer\"}]},\"id\":\"ed5e5745-c67e-4229-b132-7012fd63c462\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.71238898038469,6.23343511835845,6.23343511835845,6.184431751552337,6.184431751552337,6.13666495819489,6.13666495819489,6.0906118609809,6.0906118609809,6.046732820474743,6.046732820474743,6.0054660266879445,6.0054660266879445,5.967223903666774,5.967223903666774,5.932388530542976,5.932388530542976,5.9013078480702275,5.9013078480702275,5.874292743279611,5.874292743279611,5.8516131119477235,5.8516131119477235,5.833495134807306,5.833495134807306,5.8201202615357435,5.8201202615357435,5.811621884852017,5.811621884852017,5.808084914894487,5.808084914894487,5.8095449568557065,5.8095449568557065,5.815987469203411,5.815987469203411,5.8273474316448155,5.8273474316448155,5.843511821987934,5.843511821987934,5.8643193313517195,5.8643193313517195,5.889561442635366,5.889561442635366,5.918986583258233,5.918986583258233,5.9523003449896805,5.9523003449896805,5.989170015049645,5.989170015049645,6.029227223516209,6.029227223516209,6.072071700496288,6.072071700496288,6.117275278915084,6.117275278915084,6.164386368906841,6.164386368906841,6.212934329414636,6.212934329414636,6.2624339239571505,6.2624339239571505,6.312390679849937,6.312390679849937,6.362305400743542,6.362305400743542,6.411679394704957,6.411679394704957,6.460019360056131,6.460019360056131,6.506842201439444,6.506842201439444,6.551680031666482,6.551680031666482,6.594084999834339,6.594084999834339,6.633633438260151,6.633633438260151,6.669930127292723,6.669930127292723,6.702612313955305,6.702612313955305,6.731353351880845,6.731353351880845,6.755866527731952,6.755866527731952,6.775906422547919,6.775906422547919,6.791273146572108,6.791273146572108,6.801812903440698,6.801812903440698,6.807420557864043,6.807420557864043,6.808039975219632,6.808039975219632,6.8036649860749385,6.8036649860749385,6.794339350581513,6.794339350581513,6.780156285198855,6.780156285198855,6.761257422050781,6.761257422050781,6.737831631385711,6.737831631385711,6.7101127514767525,6.7101127514767525,6.678378091288306,6.678378091288306,6.6429447704586,6.6429447704586,6.604166344691919,6.604166344691919,6.562430773179212,6.562430773179212,6.518154793125488,6.518154793125488,6.471780866074636,6.471780866074636,6.423772331271722,6.423772331271722,6.374608946609808,6.374608946609808,6.324781834552386,6.324781834552386,6.274788901657644,6.274788901657644,6.225129657012046,6.225129657012046,6.1763002803639,6.1763002803639,6.128788627480038,6.128788627480038,6.083069523204981,6.083069523204981,6.0395996224102415,6.0395996224102415,5.998813385500947,5.998813385500947,5.961118220133709,5.961118220133709,5.926890927739345,5.926890927739345,5.896473252226108,5.896473252226108,5.870169596414117,5.870169596414117,5.848242164563719,5.848242164563719,5.8309104046039355,5.8309104046039355,5.818347290610982,5.818347290610982,5.810678750296788,5.810678750296788,5.807980939661334,5.807980939661334,5.81028109981428,5.81028109981428,5.817555880037132,5.817555880037132,5.829733179876338,5.829733179876338,5.8466909339567295,5.8466909339567295,5.868259810339435,5.868259810339435,5.894224128618611,5.894224128618611,5.924324869897839,5.924324869897839,5.9582608314524395,5.9582608314524395,5.995693161617674,5.995693161617674,6.036247832601666,6.036247832601666,6.079519541948399,6.079519541948399,6.125076081987474,6.125076081987474,6.17246215169353,6.17246215169353,6.221204314374761,6.221204314374761,6.270815598183071,6.270815598183071,6.3208002520755135,6.3208002520755135,6.370658836425947,6.370658836425947,6.419893237504574,6.419893237504574,6.468011494643307,6.468011494643307,6.5145328682405825,6.5145328682405825,6.5589924177704635,6.5589924177704635],\"x\":[0.0,0.0,2.098967,2.098967,4.291359,4.291359,6.569422,6.569422,8.924371,8.924371,11.34677,11.34677,13.82695,13.82695,16.35537,16.35537,18.92299,18.92299,21.52152,21.52152,24.14369,24.14369,26.78329,26.78329,29.43523,29.43523,32.09547,32.09547,34.76081,34.76081,37.42874,37.42874,40.09711,40.09711,42.76381,42.76381,45.42651,45.42651,48.08234,48.08234,50.72763,50.72763,53.35773,53.35773,55.96692,55.96692,58.54835,58.54835,61.09413,61.09413,63.59551,63.59551,66.04312,66.04312,68.4273,68.4273,70.73845,70.73845,72.96749,72.96749,75.10617,75.10617,77.14752,77.14752,79.0861,79.0861,80.91825,80.91825,82.64225,82.64225,84.25837,84.25837,85.7688,85.7688,87.1776,87.1776,88.49045,88.49045,89.71448,89.71448,90.85799,90.85799,91.93022,91.93022,92.94111,92.94111,93.90109,93.90109,94.82094,94.82094,95.71161,95.71161,96.58418,96.58418,97.44996,97.44996,98.31977,98.31977,99.20492,99.20492,100.1165,100.1165,101.0655,101.0655,102.0628,102.0628,103.1189,103.1189,104.2439,104.2439,105.4471,105.4471,106.7373,106.7373,108.1217,108.1217,109.6065,109.6065,111.1961,111.1961,112.8933,112.8933,114.6988,114.6988,116.6112,116.6112,118.6276,118.6276,120.7427,120.7427,122.9501,122.9501,125.2417,125.2417,127.6087,127.6087,130.0415,130.0415,132.5304,132.5304,135.066,135.066,137.6394,137.6394,140.2424,140.2424,142.8679,142.8679,145.5099,145.5099,148.1635,148.1635,150.8248,150.8248,153.4907,153.4907,156.1589,156.1589,158.8271,158.8271,161.4933,161.4933,164.1551,164.1551,166.8094,166.8094,169.4525,169.4525,172.0795,172.0795,174.6846,174.6846,177.2606,177.2606,179.7995,179.7995,182.2925,182.2925,184.7302,184.7302,187.1027,187.1027,189.4007,189.4007,191.6151,191.6151,193.7378,193.7378,195.7622,195.7622,197.6831,197.6831,199.4972,199.4972,201.2029,201.2029,202.8011,202.8011,204.2941,204.2941],\"y\":[0.0,0.0,0.0522228,0.0522228,0.2153118,0.2153118,0.4960956,0.4960956,0.8992403,0.8992403,1.426997,1.426997,2.079045,2.079045,2.852433,2.852433,3.74161,3.74161,4.738551,4.738551,5.832949,5.832949,7.012457,7.012457,8.262985,8.262985,9.569013,9.569013,10.91392,10.91392,12.28034,12.28034,13.65048,13.65048,15.00648,15.00648,16.33075,16.33075,17.60632,17.60632,18.81717,18.81717,19.94857,19.94857,20.98742,20.98742,21.92253,21.92253,22.7449,22.7449,23.44793,23.44793,24.02757,24.02757,24.48242,24.48242,24.81366,24.81366,25.02499,25.02499,25.12237,25.12237,25.11374,25.11374,25.00864,25.00864,24.81776,24.81776,24.5525,24.5525,24.22449,24.22449,23.84512,23.84512,23.42518,23.42518,22.97451,22.97451,22.50173,22.50173,22.01409,22.01409,21.51741,21.51741,21.01603,21.01603,20.51295,20.51295,20.00996,20.00996,19.50782,19.50782,19.00655,19.00655,18.50597,18.50597,18.00486,18.00486,17.50296,17.50296,17.00014,17.00014,16.49696,16.49696,15.99493,15.99493,15.49673,15.49673,15.00637,15.00637,14.52929,14.52929,14.07238,14.07238,13.64396,13.64396,13.25356,13.25356,12.91178,12.91178,12.62989,12.62989,12.4195,12.4195,12.29211,12.29211,12.25864,12.25864,12.32894,12.32894,12.5114,12.5114,12.8125,12.8125,13.23651,13.23651,13.78526,13.78526,14.45798,14.45798,15.2513,15.2513,16.15922,16.15922,17.17333,17.17333,18.28295,18.28295,19.47543,19.47543,20.73641,20.73641,22.05016,22.05016,23.39992,23.39992,24.76822,24.76822,26.13723,26.13723,27.48911,27.48911,28.80636,28.80636,30.07213,30.07213,31.27061,31.27061,32.38732,32.38732,33.40945,33.40945,34.32617,34.32617,35.12887,35.12887,35.81136,35.81136,36.37004,36.37004,36.80395,36.80395,37.11471,37.11471,37.3064,37.3064,37.38535,37.38535,37.3598,37.3598,37.2395,37.2395,37.03531,37.03531,36.75869,36.75869,36.42125,36.42125,36.03433,36.03433]}},\"id\":\"2ce447f3-8e14-4c90-9220-751c48fed281\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"61b5bd89-b081-4daa-8a1c-d3f83d7f7299\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.73858625038469,4.7644149603846895,4.78569427038469,4.8117497203846895,4.83665708038469,4.8577380803846895,4.8854642803846895,4.909715680384689,4.928538880384689,4.94904748038469,4.96675178038469,4.98518208038469,5.00272198038469,5.0162893803846895,5.0292152803846895,5.0414301803846895,5.05077278038469,5.0596443803846896,5.06308698038469,5.068005980384689,5.067701280384689,5.07170648038469,5.07136878038469,5.06903768038469,5.06894018038469,5.06111128038469,5.05642938038469,5.047975780384689,5.0424490803846895,5.0358929803846895,5.02925348038469,5.01790228038469,5.00980118038469,5.00449998038469,4.99341168038469,4.98196388038469,4.97456968038469,4.96634198038469,4.95775618038469,4.95100548038469,4.94214378038469,4.93446338038469,4.927756580384689,4.91980398038469,4.91439068038469,4.905369380384689,4.89660718038469,4.894815980384689,4.885376780384689,4.87959078038469,4.873435580384689,4.8662929803846895,4.85845278038469,4.8535038803846895,4.844571680384689,4.84538578038469,4.83827298038469,4.8320803803846895,4.828140980384689,4.82559498038469,4.81917808038469,4.81526558038469,4.816398680384689,4.8128520803846895,4.81571588038469,4.81567958038469,4.81518128038469,4.81773358038469,4.820256280384689,4.820438680384689,4.83179008038469,4.83674238038469,4.83893598038469,4.84453578038469,4.85278978038469,4.856194380384689,4.86058848038469,4.87170858038469,4.875627580384689,4.88309818038469,4.88914918038469,4.888723580384689,4.891763780384689,4.89993238038469,4.904382180384689,4.90111248038469,4.90747058038469,4.90900928038469,4.90550658038469,4.90710508038469,4.904728980384689,4.903648280384689,4.90337928038469,4.901842680384689,4.898989980384689,4.89760808038469,4.89674908038469,4.894147680384689,4.88862108038469],\"x\":[0.0,1.8120890065536968,4.195282898131183,6.439263951838519,8.897494094590057,11.444709998562601,13.657165989272517,16.28195527013715,19.363047979292386,21.621344108905937,24.560055363578353,26.541910417680082,29.47157812077767,31.792798199174168,35.05993022827336,37.49732769560551,39.900941693889585,42.571418733066885,45.64898040657271,47.93305501262085,50.5736513340699,53.52770394894018,55.8669730738404,58.579938550190896,60.764808537463345,63.74778170921791,65.88384342247551,68.67592580850912,70.7403296216073,73.0731712914125,74.9747821562663,77.13859354321183,79.17177113047259,81.1423002728638,82.50846076380661,84.28976505279456,85.97430637614002,87.61705943212222,88.41905450805521,89.78205385511532,90.84185210246,92.04917907179099,93.31857958173161,93.74234112734182,94.49395448086288,95.60968374739882,96.55895399200789,97.53327961948968,98.41615468912647,98.97815733129316,100.44057706513598,101.16930696477358,102.08068815353765,102.77582654264684,103.90499434379076,105.31590025369279,106.43875960011057,108.13143858278916,109.3876500232867,111.42573952890967,112.79694011066982,114.91642361180433,116.87120218708426,118.84992917989058,120.93423833970587,123.14220229018764,125.37589942108642,127.5063888288843,130.3344485564308,132.446615000554,135.1266605192927,137.65320233691628,140.30474598765764,142.6256163737405,145.78932837378665,148.14635115055142,150.64925114427615,153.46554947246355,156.009171438787,159.01391055766305,161.52867447954372,164.11556634790054,166.74825687834473,169.34502678163898,172.13478419876878,174.4744732696961,177.21134920572447,179.54285820847673,182.0465924352896,184.83348920835274,187.29582978840955,189.73812421115719,191.6823753367516,193.5554476756831,195.50671773399304,197.5820787172974,199.35645559429446,200.93225566805958,202.65049161342554,203.80860115543211],\"y\":[0.0,0.04748264786462898,0.21846084257143278,0.4728794469724612,0.8869824485022623,1.4295787391050676,1.9991549428591089,2.8464834078654198,3.871222944913029,4.747620196138109,5.923344376318675,6.900747701680275,8.245189957744993,9.498908426060733,10.995322083099882,12.294281139537029,13.62433332599153,14.98171157454254,16.521338038994937,17.534855906435702,18.783412268872503,19.862010699894274,20.984967829539112,21.981451628861056,22.63984645834687,23.7441692656956,23.954128228185038,24.60585513894103,24.672752931702785,25.034285363594634,25.13775096364854,25.294760630930256,24.96978639685302,24.870365557040074,24.811385251764612,24.33124510854905,23.754746342657693,23.512732123359523,22.949778454520246,22.482580932036498,22.097357323528183,21.528897814318178,21.071201563577834,20.507109611183132,19.885448646965767,19.58036957994624,18.86880294686719,18.173452009657918,18.155616058011667,17.294873926738514,16.952114087407445,16.435307956573727,15.835855802267123,15.119504041990588,14.760651532259974,14.002587512464663,14.240073777894272,13.684378949243364,13.15564377721389,12.955666227391628,12.824120189313772,12.318684155068672,12.06590888021587,12.406315021995534,12.190468227480695,12.769378268831465,12.996404104352319,13.153033749571646,13.781046422209648,14.342327973694676,14.657480322136617,16.514498795966816,17.53786603036044,18.14581064875866,19.3785257148268,20.937624190378223,21.814759909721822,22.91149960336169,25.067774793011935,26.19025159958435,27.84544498336496,29.315046248434605,29.71208219098014,30.70626687316412,32.666633096223684,33.915666311486454,33.846738229507025,35.47669757489859,36.262562461987635,36.14505716298903,36.93751853374997,36.951022287908145,37.11469778282844,37.42335772049185,37.489076100122446,37.302984337874236,37.35274592637205,37.46936679669847,37.24453567970666,36.29413616641104]}},\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"lidar measurements\"},\"renderers\":[{\"id\":\"a8e6e728-391e-4700-ad10-d9373997aba6\",\"type\":\"GlyphRenderer\"}]},\"id\":\"d4e2768c-8a4d-4953-97f7-0b39101c7433\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\"ground truth\"},\"renderers\":[{\"id\":\"0a06eb1a-cb40-42b0-b6a4-ca80e07e73d5\",\"type\":\"GlyphRenderer\"}]},\"id\":\"cf0a8865-8552-436e-89fe-4387e1b6f27e\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\"state predictions\"},\"renderers\":[{\"id\":\"9eadd4ab-0a21-41c9-a67a-61ed9659db43\",\"type\":\"GlyphRenderer\"}]},\"id\":\"711632de-078a-4069-8f37-1d9c550eac20\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null},\"id\":\"ab135fa7-6f32-433a-966a-a8a2396cc72b\",\"type\":\"DataRange1d\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"13a4f319-09bd-4568-80e7-f5cea2136992\",\"type\":\"Square\"},{\"attributes\":{},\"id\":\"7e007468-91f7-44d1-a639-e5241eda17bf\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"green\"},\"line_color\":{\"value\":\"white\"},\"size\":{\"units\":\"screen\",\"value\":15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3bcc13c5-634f-4a36-8208-52fa1bee35b0\",\"type\":\"Circle\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b85e89bd-ae79-47e7-b987-79d52207bab1\",\"type\":\"Square\"},{\"attributes\":{\"formatter\":{\"id\":\"2f3f0430-9641-4bd9-8f24-5552373d1b76\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"7e007468-91f7-44d1-a639-e5241eda17bf\",\"type\":\"BasicTicker\"}},\"id\":\"15728208-04f0-464b-b55d-ecdcc0a7560d\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"2ce447f3-8e14-4c90-9220-751c48fed281\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"7ebb34f6-bdfb-4acf-ae2a-2f0a3baba54b\",\"type\":\"Triangle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"40ab311c-842e-4903-a059-1b23ec9018e9\",\"type\":\"Triangle\"},\"selection_glyph\":null},\"id\":\"0a06eb1a-cb40-42b0-b6a4-ca80e07e73d5\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_color\":{\"value\":\"violet\"},\"line_color\":{\"value\":\"violet\"},\"line_width\":{\"value\":0.5},\"size\":{\"units\":\"screen\",\"value\":7},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7ebb34f6-bdfb-4acf-ae2a-2f0a3baba54b\",\"type\":\"Triangle\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"59756542-315f-4ac1-9598-48058824a3dd\",\"type\":\"HoverTool\"}]},\"id\":\"caca8fb1-0c66-4c64-9111-3b1ea4f29039\",\"type\":\"Toolbar\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"7e007468-91f7-44d1-a639-e5241eda17bf\",\"type\":\"BasicTicker\"}},\"id\":\"b5719ab2-d803-4be6-a1bc-32a1108ebdb2\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"13a4f319-09bd-4568-80e7-f5cea2136992\",\"type\":\"Square\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"b85e89bd-ae79-47e7-b987-79d52207bab1\",\"type\":\"Square\"},\"selection_glyph\":null},\"id\":\"23d8e287-a216-4db7-9d69-b7352241d9d9\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"formatter\":{\"id\":\"6c27a9ec-353d-40eb-82b3-ef940e945466\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6fba56c5-8d4a-4dad-becb-1de2605a82c1\",\"type\":\"BasicTicker\"}},\"id\":\"aa4cfada-b332-433b-8b97-d0d6a0b64ecb\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2f3f0430-9641-4bd9-8f24-5552373d1b76\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"aa4cfada-b332-433b-8b97-d0d6a0b64ecb\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"15728208-04f0-464b-b55d-ecdcc0a7560d\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"aa4cfada-b332-433b-8b97-d0d6a0b64ecb\",\"type\":\"LinearAxis\"},{\"id\":\"c7478131-7b66-44df-b49b-ea51528b9508\",\"type\":\"Grid\"},{\"id\":\"15728208-04f0-464b-b55d-ecdcc0a7560d\",\"type\":\"LinearAxis\"},{\"id\":\"b5719ab2-d803-4be6-a1bc-32a1108ebdb2\",\"type\":\"Grid\"},{\"id\":\"c37952f5-30fa-42a1-bb85-689ee61aca34\",\"type\":\"Legend\"},{\"id\":\"23d8e287-a216-4db7-9d69-b7352241d9d9\",\"type\":\"GlyphRenderer\"},{\"id\":\"a8e6e728-391e-4700-ad10-d9373997aba6\",\"type\":\"GlyphRenderer\"},{\"id\":\"0a06eb1a-cb40-42b0-b6a4-ca80e07e73d5\",\"type\":\"GlyphRenderer\"},{\"id\":\"9eadd4ab-0a21-41c9-a67a-61ed9659db43\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"097b8f64-58d5-40e7-8143-b94a8f89d146\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"a4866478-23eb-45e7-9237-0ea409642b56\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"caca8fb1-0c66-4c64-9111-3b1ea4f29039\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"61b5bd89-b081-4daa-8a1c-d3f83d7f7299\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"ab135fa7-6f32-433a-966a-a8a2396cc72b\",\"type\":\"DataRange1d\"}},\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[0.0,1.559445,3.890927,6.863517,9.077331,11.57555,13.59209,16.64559,19.01058,21.33124,24.07871,26.60525,29.58639,31.9416,34.61568,37.14036,40.32853,42.76639,45.35721,48.15409,50.62278,53.72678,56.03223,58.6632,60.87224,63.38208,66.34029,68.26205,70.82748,72.89226,75.00209,77.12245,79.1089,80.80743,82.62158,84.17335,85.63776,86.94492,88.82267,89.49667,90.51327,91.71782,92.85989,93.46683,95.32289,95.50389,96.26405,97.52863,98.21047,99.03627,99.99686,101.2038,102.3868,103.0034,104.1144,105.5409,106.8312,108.0836,109.5344,111.063,112.9126,114.801,116.6871,118.9528,120.6951,123.5682,124.8938,127.8531,129.9473,132.0919,135.0735,137.5606,140.3314,142.8884,145.392,148.2509,150.6859,153.422,156.0466,158.9049,161.4116,163.6251,166.8278,169.0972,172.1752,174.643,177.0301,180.1454,182.5994,184.7319,186.9463,189.4652,191.7353,193.4712,195.9914,197.7246,199.2941,201.5491,202.9624,203.9906],\"y\":[0.0,-0.1385015,-0.1341657,0.4168175,0.5932112,1.6669,2.311915,2.902999,3.705553,4.732053,5.569675,6.96102,8.08789,9.880168,10.6988,12.08833,13.46661,14.82937,16.55239,17.28347,19.07211,19.89821,21.0923,21.78207,22.78765,23.4069,23.99586,24.35817,24.88439,24.71354,25.25945,24.92967,25.03687,24.86882,24.63932,24.55042,23.80798,23.52704,22.78691,22.30817,21.66767,21.11524,20.95372,20.21548,19.65849,19.6984,19.15973,18.72696,18.3739,17.35698,16.98822,16.53684,16.39923,15.35302,15.27083,14.44125,14.04819,13.6604,13.57136,12.58139,12.48773,12.55057,12.10355,12.00094,12.2918,12.8297,12.77429,13.32727,13.6963,14.50702,15.04748,16.2147,17.00802,17.99183,19.16167,20.47536,22.11423,23.49086,24.80844,26.03078,27.42561,28.76827,30.20623,31.37172,32.34041,33.46252,34.20094,35.14229,35.75303,36.51547,36.94045,37.40516,37.56307,37.27891,37.39908,37.72855,37.28617,36.99733,36.45683,36.1967]}},\"id\":\"2b18215c-9f67-4ba0-a64d-bdb6b7182151\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"index\",\"$index\"],[\"x , y\",\"$x, $y\"],[\"angle radians\",\"@angle\"]]},\"id\":\"59756542-315f-4ac1-9598-48058824a3dd\",\"type\":\"HoverTool\"},{\"attributes\":{\"plot\":{\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6fba56c5-8d4a-4dad-becb-1de2605a82c1\",\"type\":\"BasicTicker\"}},\"id\":\"c7478131-7b66-44df-b49b-ea51528b9508\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"a4866478-23eb-45e7-9237-0ea409642b56\",\"type\":\"ToolEvents\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.71238898038469,6.23343511835845,6.23343511835845,6.184431751552337,6.184431751552337,6.13666495819489,6.13666495819489,6.0906118609809,6.0906118609809,6.046732820474743,6.046732820474743,6.0054660266879445,6.0054660266879445,5.967223903666774,5.967223903666774,5.932388530542976,5.932388530542976,5.9013078480702275,5.9013078480702275,5.874292743279611,5.874292743279611,5.8516131119477235,5.8516131119477235,5.833495134807306,5.833495134807306,5.8201202615357435,5.8201202615357435,5.811621884852017,5.811621884852017,5.808084914894487,5.808084914894487,5.8095449568557065,5.8095449568557065,5.815987469203411,5.815987469203411,5.8273474316448155,5.8273474316448155,5.843511821987934,5.843511821987934,5.8643193313517195,5.8643193313517195,5.889561442635366,5.889561442635366,5.918986583258233,5.918986583258233,5.9523003449896805,5.9523003449896805,5.989170015049645,5.989170015049645,6.029227223516209,6.029227223516209,6.072071700496288,6.072071700496288,6.117275278915084,6.117275278915084,6.164386368906841,6.164386368906841,6.212934329414636,6.212934329414636,6.2624339239571505,6.2624339239571505,6.312390679849937,6.312390679849937,6.362305400743542,6.362305400743542,6.411679394704957,6.411679394704957,6.460019360056131,6.460019360056131,6.506842201439444,6.506842201439444,6.551680031666482,6.551680031666482,6.594084999834339,6.594084999834339,6.633633438260151,6.633633438260151,6.669930127292723,6.669930127292723,6.702612313955305,6.702612313955305,6.731353351880845,6.731353351880845,6.755866527731952,6.755866527731952,6.775906422547919,6.775906422547919,6.791273146572108,6.791273146572108,6.801812903440698,6.801812903440698,6.807420557864043,6.807420557864043,6.808039975219632,6.808039975219632,6.8036649860749385,6.8036649860749385,6.794339350581513,6.794339350581513,6.780156285198855,6.780156285198855,6.761257422050781,6.761257422050781,6.737831631385711,6.737831631385711,6.7101127514767525,6.7101127514767525,6.678378091288306,6.678378091288306,6.6429447704586,6.6429447704586,6.604166344691919,6.604166344691919,6.562430773179212,6.562430773179212,6.518154793125488,6.518154793125488,6.471780866074636,6.471780866074636,6.423772331271722,6.423772331271722,6.374608946609808,6.374608946609808,6.324781834552386,6.324781834552386,6.274788901657644,6.274788901657644,6.225129657012046,6.225129657012046,6.1763002803639,6.1763002803639,6.128788627480038,6.128788627480038,6.083069523204981,6.083069523204981,6.0395996224102415,6.0395996224102415,5.998813385500947,5.998813385500947,5.961118220133709,5.961118220133709,5.926890927739345,5.926890927739345,5.896473252226108,5.896473252226108,5.870169596414117,5.870169596414117,5.848242164563719,5.848242164563719,5.8309104046039355,5.8309104046039355,5.818347290610982,5.818347290610982,5.810678750296788,5.810678750296788,5.807980939661334,5.807980939661334,5.81028109981428,5.81028109981428,5.817555880037132,5.817555880037132,5.829733179876338,5.829733179876338,5.8466909339567295,5.8466909339567295,5.868259810339435,5.868259810339435,5.894224128618611,5.894224128618611,5.924324869897839,5.924324869897839,5.9582608314524395,5.9582608314524395,5.995693161617674,5.995693161617674,6.036247832601666,6.036247832601666,6.079519541948399,6.079519541948399,6.125076081987474,6.125076081987474,6.17246215169353,6.17246215169353,6.221204314374761,6.221204314374761,6.270815598183071,6.270815598183071,6.3208002520755135,6.3208002520755135,6.370658836425947,6.370658836425947,6.419893237504574,6.419893237504574,6.468011494643307,6.468011494643307,6.5145328682405825,6.5145328682405825,6.5589924177704635,6.5589924177704635],\"x\":[0.0,0.0,1.5594294407139864,1.6997642436040528,3.8917923855664487,4.06381861083907,6.86063400846729,6.598257790897028,9.077398062364205,9.016314160276366,11.574745880131799,11.511240292875755,13.595201582532296,13.766550957474472,16.64141195103766,16.390098776978668,19.01115821017751,19.088953487623748,21.33291794508709,21.537740411841565,24.079169869579506,24.288247410135753,26.609664464100984,26.761889508058754,29.58444339441153,29.479214053423103,31.943999680604378,31.975171255785632,34.61392371556521,34.739557383541765,37.144076218761256,37.3720875206958,40.32560399006981,40.06457705439623,42.766787310184505,42.69864697597086,45.35728563972067,45.485851243239495,48.155391928391246,48.082423174589586,50.62276929421176,50.60247146869716,53.72170641880972,53.50139666603117,56.0352599784601,55.970221950077814,58.65883888750275,58.59105728059672,60.87795726743112,60.95163997425266,63.37964427421494,63.48131546855045,66.3392116463772,66.04160308973533,68.26215491736463,68.4457591883614,70.82859089827669,70.81177222188988,72.89371997278187,72.98954765866793,75.00303489263688,75.01250966950117,77.12161218641057,77.05929212027051,79.10777409449865,79.06626857878656,80.80863382334134,80.93052112993357,82.62158561165299,82.54529929887109,84.17243834980827,84.21476644994489,85.64035403065675,85.82342986489931,86.94772941066692,87.23774969920835,88.82005814786982,88.61019030525492,89.50104744914198,89.67766459525275,90.5133150525439,90.69187436632792,91.71943895675632,91.85047642501232,92.85986939282726,93.0081734275299,93.47177282711581,93.7560649147808,95.31731144750817,94.80124987945607,95.50556635209328,95.58106786662978,96.26447993756973,96.42932811974242,97.5275466202392,97.46846858046455,98.21192238024696,98.3223934179667,99.03712209402433,99.11506721006639,99.99806489187743,100.15077401027625,101.20236200956009,101.16537769337545,102.38557300520951,102.20922608989436,103.00484418117264,103.04388987112561,104.11448681762992,104.04263117852474,105.5373958011511,105.38381549292414,106.8312003565689,106.65838139704964,108.08199499708465,108.12015405695934,109.536557221145,109.51798444739792,111.06120666540242,111.19860005730496,112.91383001133056,112.88643333921839,114.7987094778584,114.79622480022661,116.68794963080177,116.79724873039008,118.9520961057263,118.90421665311605,120.69784946612906,120.89151003814206,123.5632726296101,123.24766752238506,124.89950378104524,125.34232306549225,127.85209578794976,127.70661217654973,129.94882339585882,130.13428155138342,132.0952564697859,132.370616191482,135.07108311335293,135.01884042435603,137.56145171173029,137.62133478591494,140.33078897967857,140.35527330800906,142.89110995582928,142.87825230089533,145.39205315487314,145.5823921945002,148.25222005607853,148.2267618322195,150.68632207547498,150.74375314771112,153.4224977037653,153.4255374999488,156.0465346635725,156.0028863707598,158.90150627466164,158.87241572790666,161.4151249346334,161.5156326978804,163.62750017993474,163.9463284600591,166.82560169326106,166.69634156453773,169.09942698516178,169.24419916027952,172.1723007443566,172.0599806054648,174.6444093334491,174.6081158550394,177.03021450263947,177.10176361151582,180.14120716074885,179.72525106406857,182.59564599152037,182.2939670911588,184.7326792314511,184.7006055377946,186.94536114239676,187.07045981106444,189.46574586383116,189.5103094241485,191.73542821417678,191.6944266534645,193.47413562852392,193.61050992645215,195.98788947680774,195.65988697319796,197.72313675947967,197.59432152513537,199.2957485946026,199.36270926264527,201.54535452548902,201.1699254114176,202.9612575722091,202.80324175336833,203.99277968677674,204.02844674190862],\"y\":[0.0,0.0,-0.13850011810807575,0.02939423931229085,-0.13381703741216905,0.1963922156187688,0.417074606700436,0.48739976802645557,0.5931888596061516,0.8975420139465631,1.6660164621254927,1.439105463384184,2.3091004553384984,2.0241602510657986,2.902239992057652,2.865252709677587,3.7057064616237136,3.812435094226425,4.732297186215907,4.7319518188913925,5.570439099613631,5.841511577402024,6.96207768274138,6.96149099276796,8.088220912268996,8.23137878310161,9.87793323316501,9.586882739667672,10.701214598414257,10.87612054310945,12.087506449146458,12.240627485062115,13.469785685695351,13.63546293004128,14.828876928918119,14.988698682358853,16.552750330156147,16.488563599770824,17.287562064718735,17.52070029078101,19.066735816090596,18.853885430683054,19.903221342300608,19.845232184047987,21.0851041995143,21.033590050334066,21.790939218981407,21.92353337456869,22.781176822257702,22.739763643201762,23.41406612094208,23.58411803335816,23.993270577750035,23.969900994440742,24.359704427415796,24.48928102171255,24.884688795468435,24.76307219447432,24.714955818843208,24.90873395563262,25.258154735020753,25.19326648225177,24.934110251708564,25.127836621606964,25.03412367479903,24.97120400613181,24.87000214543947,24.848381409631195,24.638627219489443,24.73411944325635,24.551813008431893,24.42068544126276,23.80814881274949,23.777806154322622,23.52442322938002,23.497531222498267,22.79144011874045,22.87968265312676,22.304813206635266,22.406635575046373,21.672805244937955,21.899391049061702,21.114277928132605,21.322844165172945,20.954166573301165,20.994917379629626,20.21818631762873,20.398523923388257,19.65843990865857,19.757332259055723,19.694892105126584,19.641055786260196,19.164695790172345,19.01784414385946,18.720201490065634,18.433508730037676,18.374298226818926,18.267020452646324,17.360939935716758,17.346252414074513,16.981653799470863,16.956237210001277,16.541870520829455,16.486769108887813,16.392493110673577,16.119362544808286,15.359410691222228,15.265499705874573,15.260057408946457,15.027455579051198,14.450693503413412,14.234483320956373,14.035849235351629,14.131635166041077,13.672792142985315,13.679905608591493,13.559664107499334,13.384178574319206,12.592882956183582,12.750864176184049,12.477303563799806,12.630999328039145,12.559156391359906,12.451192322833451,12.097353155126413,12.087597032948636,12.003964534036044,12.168459719887368,12.290051215689006,12.260083209408709,12.82800055737522,12.78916913603424,12.778655990870664,12.888456492816962,13.322669868791067,13.257280322102579,13.69915143308757,13.73383551291505,14.503252879067434,14.462296023142853,15.051304664832825,14.905641274046754,16.205609310392145,16.31436863161683,17.019885208680048,17.19576398048579,17.984312238681422,18.046645205184525,19.166391353759632,19.241832164672537,20.47193765300606,20.616161954528714,22.116790603300558,22.03643791157596,23.48869031158666,23.318596292878805,24.808004825897847,24.87657305353883,26.03365223401951,26.067096063713503,27.422384087409842,27.5487054353863,28.7731065988469,28.94955057589845,30.2044991429592,30.057819939523327,31.370867516791613,31.21944469780818,32.340715054260116,32.400866671283595,33.46295321123981,33.57215480641768,34.20451415057002,34.126425350517636,35.13628403552346,35.1590033793527,35.75950255374069,35.83716653575751,36.51074377726786,36.419806320218726,36.943651593388275,36.95225995437127,37.40320586605088,37.30557323889721,37.56446313814522,37.46558466648027,37.279670209953714,37.331875651841365,37.3976584649934,37.37185920037473,37.727128771026244,37.62419893121266,37.29024791638682,37.31260204192366,36.99436409329722,37.03832984738309,36.460672876380585,36.591752856164355,36.194064073441325,36.22529092878557]}},\"id\":\"942caf93-76c0-412f-9ad8-3f446d76d646\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"items\":[{\"id\":\"ed5e5745-c67e-4229-b132-7012fd63c462\",\"type\":\"LegendItem\"},{\"id\":\"d4e2768c-8a4d-4953-97f7-0b39101c7433\",\"type\":\"LegendItem\"},{\"id\":\"cf0a8865-8552-436e-89fe-4387e1b6f27e\",\"type\":\"LegendItem\"},{\"id\":\"711632de-078a-4069-8f37-1d9c550eac20\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c37952f5-30fa-42a1-bb85-689ee61aca34\",\"type\":\"Legend\"}],\"root_ids\":[\"1644c3af-4f75-44f1-8369-aadeecc323d2\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"6148c1df-f78e-459b-af60-ac57d5fcb830\",\"elementid\":\"81f57583-2dc7-434e-886d-976f62fbd3d4\",\"modelid\":\"1644c3af-4f75-44f1-8369-aadeecc323d2\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"81f57583-2dc7-434e-886d-976f62fbd3d4\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hover6 = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700, tools = [hover6])\n",
    "\n",
    "p.square(\n",
    "  'x', 'y', size = 3, \n",
    "  fill_color = \"orange\",\n",
    "  line_color = \"orange\",\n",
    "  fill_alpha = 1,\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"radar measurements\", \n",
    "  source = radar_source)\n",
    "\n",
    "p.circle(\n",
    "  'x', 'y', size = 15, \n",
    "  fill_color = \"green\",\n",
    "  line_color = \"white\",\n",
    "  fill_alpha = 0.2,\n",
    "  line_width = 1, \n",
    "  legend = \"lidar measurements\", \n",
    "  source = lidar_source)\n",
    "\n",
    "p.triangle(\n",
    "  'x', 'y', size = 7, \n",
    "  fill_color = \"violet\",\n",
    "  line_color = \"violet\",\n",
    "  fill_alpha = 1,\n",
    "  angle = 'angle', \n",
    "  line_width = 0.5, \n",
    "  legend = \"ground truth\",\n",
    "  source = truth_source)\n",
    "\n",
    "\n",
    "p.triangle(\n",
    "  'x', 'y', size = 2, \n",
    "  fill_color = \"black\",\n",
    "  line_color = \"black\",\n",
    "  fill_alpha = 1,\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"state predictions\", \n",
    "  source = state_source)\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <div class=\"bk-plotdiv\" id=\"e82d6d5e-aec1-426e-a27e-e5593b112d73\"></div>\n",
       "    </div>\n",
       "<script type=\"text/javascript\">\n",
       "  \n",
       "  (function(global) {\n",
       "    function now() {\n",
       "      return new Date();\n",
       "    }\n",
       "  \n",
       "    var force = false;\n",
       "  \n",
       "    if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
       "      window._bokeh_onload_callbacks = [];\n",
       "      window._bokeh_is_loading = undefined;\n",
       "    }\n",
       "  \n",
       "  \n",
       "    \n",
       "    if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "      window._bokeh_timeout = Date.now() + 0;\n",
       "      window._bokeh_failed_load = false;\n",
       "    }\n",
       "  \n",
       "    var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "       \"<div style='background-color: #fdd'>\\n\"+\n",
       "       \"<p>\\n\"+\n",
       "       \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "       \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "       \"</p>\\n\"+\n",
       "       \"<ul>\\n\"+\n",
       "       \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "       \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "       \"</ul>\\n\"+\n",
       "       \"<code>\\n\"+\n",
       "       \"from bokeh.resources import INLINE\\n\"+\n",
       "       \"output_notebook(resources=INLINE)\\n\"+\n",
       "       \"</code>\\n\"+\n",
       "       \"</div>\"}};\n",
       "  \n",
       "    function display_loaded() {\n",
       "      if (window.Bokeh !== undefined) {\n",
       "        document.getElementById(\"e82d6d5e-aec1-426e-a27e-e5593b112d73\").textContent = \"BokehJS successfully loaded.\";\n",
       "      } else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(display_loaded, 100)\n",
       "      }\n",
       "    }\n",
       "  \n",
       "    function run_callbacks() {\n",
       "      window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
       "      delete window._bokeh_onload_callbacks\n",
       "      console.info(\"Bokeh: all callbacks have finished\");\n",
       "    }\n",
       "  \n",
       "    function load_libs(js_urls, callback) {\n",
       "      window._bokeh_onload_callbacks.push(callback);\n",
       "      if (window._bokeh_is_loading > 0) {\n",
       "        console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "        return null;\n",
       "      }\n",
       "      if (js_urls == null || js_urls.length === 0) {\n",
       "        run_callbacks();\n",
       "        return null;\n",
       "      }\n",
       "      console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      window._bokeh_is_loading = js_urls.length;\n",
       "      for (var i = 0; i < js_urls.length; i++) {\n",
       "        var url = js_urls[i];\n",
       "        var s = document.createElement('script');\n",
       "        s.src = url;\n",
       "        s.async = false;\n",
       "        s.onreadystatechange = s.onload = function() {\n",
       "          window._bokeh_is_loading--;\n",
       "          if (window._bokeh_is_loading === 0) {\n",
       "            console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
       "            run_callbacks()\n",
       "          }\n",
       "        };\n",
       "        s.onerror = function() {\n",
       "          console.warn(\"failed to load library \" + url);\n",
       "        };\n",
       "        console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "        document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
       "      }\n",
       "    };var element = document.getElementById(\"e82d6d5e-aec1-426e-a27e-e5593b112d73\");\n",
       "    if (element == null) {\n",
       "      console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'e82d6d5e-aec1-426e-a27e-e5593b112d73' but no matching script tag was found. \")\n",
       "      return false;\n",
       "    }\n",
       "  \n",
       "    var js_urls = [];\n",
       "  \n",
       "    var inline_js = [\n",
       "      function(Bokeh) {\n",
       "        (function() {\n",
       "          var fn = function() {\n",
       "            var docs_json = {\"c881ce0a-23d8-4834-a197-24bdc17b5102\":{\"roots\":{\"references\":[{\"attributes\":{\"line_color\":{\"value\":\"navy\"},\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"46905009-e640-4e4c-8898-8b9361a815ed\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"index\",\"$index\"],[\"x , y\",\"$x, $y\"],[\"angle radians\",\"@angle\"]]},\"id\":\"4c7befda-3f62-4d1f-ad97-736030b01b12\",\"type\":\"HoverTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"angle\",\"y\"],\"data\":{\"angle\":[4.71238898038469,4.73858625038469,4.7644149603846895,4.78569427038469,4.8117497203846895,4.83665708038469,4.8577380803846895,4.8854642803846895,4.909715680384689,4.928538880384689,4.94904748038469,4.96675178038469,4.98518208038469,5.00272198038469,5.0162893803846895,5.0292152803846895,5.0414301803846895,5.05077278038469,5.0596443803846896,5.06308698038469,5.068005980384689,5.067701280384689,5.07170648038469,5.07136878038469,5.06903768038469,5.06894018038469,5.06111128038469,5.05642938038469,5.047975780384689,5.0424490803846895,5.0358929803846895,5.02925348038469,5.01790228038469,5.00980118038469,5.00449998038469,4.99341168038469,4.98196388038469,4.97456968038469,4.96634198038469,4.95775618038469,4.95100548038469,4.94214378038469,4.93446338038469,4.927756580384689,4.91980398038469,4.91439068038469,4.905369380384689,4.89660718038469,4.894815980384689,4.885376780384689,4.87959078038469,4.873435580384689,4.8662929803846895,4.85845278038469,4.8535038803846895,4.844571680384689,4.84538578038469,4.83827298038469,4.8320803803846895,4.828140980384689,4.82559498038469,4.81917808038469,4.81526558038469,4.816398680384689,4.8128520803846895,4.81571588038469,4.81567958038469,4.81518128038469,4.81773358038469,4.820256280384689,4.820438680384689,4.83179008038469,4.83674238038469,4.83893598038469,4.84453578038469,4.85278978038469,4.856194380384689,4.86058848038469,4.87170858038469,4.875627580384689,4.88309818038469,4.88914918038469,4.888723580384689,4.891763780384689,4.89993238038469,4.904382180384689,4.90111248038469,4.90747058038469,4.90900928038469,4.90550658038469,4.90710508038469,4.904728980384689,4.903648280384689,4.90337928038469,4.901842680384689,4.898989980384689,4.89760808038469,4.89674908038469,4.894147680384689,4.88862108038469],\"x\":[0.0,1.8120890065536968,4.195282898131183,6.439263951838519,8.897494094590057,11.444709998562601,13.657165989272517,16.28195527013715,19.363047979292386,21.621344108905937,24.560055363578353,26.541910417680082,29.47157812077767,31.792798199174168,35.05993022827336,37.49732769560551,39.900941693889585,42.571418733066885,45.64898040657271,47.93305501262085,50.5736513340699,53.52770394894018,55.8669730738404,58.579938550190896,60.764808537463345,63.74778170921791,65.88384342247551,68.67592580850912,70.7403296216073,73.0731712914125,74.9747821562663,77.13859354321183,79.17177113047259,81.1423002728638,82.50846076380661,84.28976505279456,85.97430637614002,87.61705943212222,88.41905450805521,89.78205385511532,90.84185210246,92.04917907179099,93.31857958173161,93.74234112734182,94.49395448086288,95.60968374739882,96.55895399200789,97.53327961948968,98.41615468912647,98.97815733129316,100.44057706513598,101.16930696477358,102.08068815353765,102.77582654264684,103.90499434379076,105.31590025369279,106.43875960011057,108.13143858278916,109.3876500232867,111.42573952890967,112.79694011066982,114.91642361180433,116.87120218708426,118.84992917989058,120.93423833970587,123.14220229018764,125.37589942108642,127.5063888288843,130.3344485564308,132.446615000554,135.1266605192927,137.65320233691628,140.30474598765764,142.6256163737405,145.78932837378665,148.14635115055142,150.64925114427615,153.46554947246355,156.009171438787,159.01391055766305,161.52867447954372,164.11556634790054,166.74825687834473,169.34502678163898,172.13478419876878,174.4744732696961,177.21134920572447,179.54285820847673,182.0465924352896,184.83348920835274,187.29582978840955,189.73812421115719,191.6823753367516,193.5554476756831,195.50671773399304,197.5820787172974,199.35645559429446,200.93225566805958,202.65049161342554,203.80860115543211],\"y\":[0.0,0.04748264786462898,0.21846084257143278,0.4728794469724612,0.8869824485022623,1.4295787391050676,1.9991549428591089,2.8464834078654198,3.871222944913029,4.747620196138109,5.923344376318675,6.900747701680275,8.245189957744993,9.498908426060733,10.995322083099882,12.294281139537029,13.62433332599153,14.98171157454254,16.521338038994937,17.534855906435702,18.783412268872503,19.862010699894274,20.984967829539112,21.981451628861056,22.63984645834687,23.7441692656956,23.954128228185038,24.60585513894103,24.672752931702785,25.034285363594634,25.13775096364854,25.294760630930256,24.96978639685302,24.870365557040074,24.811385251764612,24.33124510854905,23.754746342657693,23.512732123359523,22.949778454520246,22.482580932036498,22.097357323528183,21.528897814318178,21.071201563577834,20.507109611183132,19.885448646965767,19.58036957994624,18.86880294686719,18.173452009657918,18.155616058011667,17.294873926738514,16.952114087407445,16.435307956573727,15.835855802267123,15.119504041990588,14.760651532259974,14.002587512464663,14.240073777894272,13.684378949243364,13.15564377721389,12.955666227391628,12.824120189313772,12.318684155068672,12.06590888021587,12.406315021995534,12.190468227480695,12.769378268831465,12.996404104352319,13.153033749571646,13.781046422209648,14.342327973694676,14.657480322136617,16.514498795966816,17.53786603036044,18.14581064875866,19.3785257148268,20.937624190378223,21.814759909721822,22.91149960336169,25.067774793011935,26.19025159958435,27.84544498336496,29.315046248434605,29.71208219098014,30.70626687316412,32.666633096223684,33.915666311486454,33.846738229507025,35.47669757489859,36.262562461987635,36.14505716298903,36.93751853374997,36.951022287908145,37.11469778282844,37.42335772049185,37.489076100122446,37.302984337874236,37.35274592637205,37.46936679669847,37.24453567970666,36.29413616641104]}},\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"lidar measurements\"},\"renderers\":[{\"id\":\"4204dde7-8a98-4e8c-90c8-a7ade1c5f150\",\"type\":\"GlyphRenderer\"}]},\"id\":\"72b54b8a-06dd-41a9-be8a-590c810f5144\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\"ground truth\"},\"renderers\":[{\"id\":\"b6479b0c-3473-4b79-b10f-9b9d596de41b\",\"type\":\"GlyphRenderer\"}]},\"id\":\"539125c5-ade6-48e0-b33c-a86e84c5391e\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null},\"id\":\"6bbf0402-a79e-4545-8fc9-2ee6430754c4\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"7c8bc025-8cac-42fd-bb72-8735caef2429\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"766b7b1d-8e5b-406d-b66b-77dd861a3a35\",\"type\":\"Square\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"1a702cc8-8c7e-4c62-8086-a3c1189e0d63\",\"type\":\"Square\"},\"selection_glyph\":null},\"id\":\"c7432b1d-cbfa-459e-a919-3f5ec2d75a24\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e2875f31-f76b-417c-8b95-4f3f87c5a7a6\",\"type\":\"BasicTicker\"}},\"id\":\"f00390a3-b1de-4c0e-b8e3-bb816e19bf88\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"a0a1535b-8ea7-43d4-b5e7-30948bd84d74\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"2b18215c-9f67-4ba0-a64d-bdb6b7182151\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3ce6e934-477f-4e90-9821-5c2caa2f69b9\",\"type\":\"Circle\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"d4831a41-2b13-419c-9b82-d89408c29eb2\",\"type\":\"Circle\"},\"selection_glyph\":null},\"id\":\"4204dde7-8a98-4e8c-90c8-a7ade1c5f150\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"83209c8e-2c70-4494-9870-ecb697027757\",\"type\":\"Title\"},{\"attributes\":{\"items\":[{\"id\":\"8dfba104-830c-4e7c-abbc-23743150c6fe\",\"type\":\"LegendItem\"},{\"id\":\"72b54b8a-06dd-41a9-be8a-590c810f5144\",\"type\":\"LegendItem\"},{\"id\":\"34615f49-3ebc-4cc2-8802-6532876cc2e3\",\"type\":\"LegendItem\"},{\"id\":\"539125c5-ade6-48e0-b33c-a86e84c5391e\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"0d077990-2bd3-4ee1-b16e-3200bc570ead\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"fed16aea-9f19-4da5-800a-9679dd03095a\",\"type\":\"ToolEvents\"},{\"attributes\":{\"below\":[{\"id\":\"d65677e2-6acb-4a96-9f3d-e7fb7a6c4002\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"e6273c42-7852-444f-b164-9a9fdf5e8d79\",\"type\":\"LinearAxis\"}],\"plot_height\":700,\"plot_width\":1000,\"renderers\":[{\"id\":\"d65677e2-6acb-4a96-9f3d-e7fb7a6c4002\",\"type\":\"LinearAxis\"},{\"id\":\"d5995017-953b-4fd3-9dab-6294e2d48c21\",\"type\":\"Grid\"},{\"id\":\"e6273c42-7852-444f-b164-9a9fdf5e8d79\",\"type\":\"LinearAxis\"},{\"id\":\"f00390a3-b1de-4c0e-b8e3-bb816e19bf88\",\"type\":\"Grid\"},{\"id\":\"0d077990-2bd3-4ee1-b16e-3200bc570ead\",\"type\":\"Legend\"},{\"id\":\"c7432b1d-cbfa-459e-a919-3f5ec2d75a24\",\"type\":\"GlyphRenderer\"},{\"id\":\"4204dde7-8a98-4e8c-90c8-a7ade1c5f150\",\"type\":\"GlyphRenderer\"},{\"id\":\"bb1d9d5f-0e9c-4bc6-9e5c-9d6274f5890a\",\"type\":\"GlyphRenderer\"},{\"id\":\"b6479b0c-3473-4b79-b10f-9b9d596de41b\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"83209c8e-2c70-4494-9870-ecb697027757\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"fed16aea-9f19-4da5-800a-9679dd03095a\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"1f5e755e-dd5a-46e4-b495-1bdd5d52b11c\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"6baef908-8ca9-4860-94ee-3dd27dfb2b37\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"6bbf0402-a79e-4545-8fc9-2ee6430754c4\",\"type\":\"DataRange1d\"}},\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"violet\"},\"line_color\":{\"value\":\"violet\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"766b7b1d-8e5b-406d-b66b-77dd861a3a35\",\"type\":\"Square\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2c725acb-2441-483f-8991-b92b2ec7ff34\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"state predictions\"},\"renderers\":[{\"id\":\"bb1d9d5f-0e9c-4bc6-9e5c-9d6274f5890a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"34615f49-3ebc-4cc2-8802-6532876cc2e3\",\"type\":\"LegendItem\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.4},\"fill_color\":{\"value\":\"green\"},\"line_color\":{\"value\":\"white\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3ce6e934-477f-4e90-9821-5c2caa2f69b9\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d4831a41-2b13-419c-9b82-d89408c29eb2\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"c0b1e97d-121e-4b87-b985-b0e6928e7f01\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b6873f9f-d9a4-470b-9632-f63e4b92e341\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"2c725acb-2441-483f-8991-b92b2ec7ff34\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"bb1d9d5f-0e9c-4bc6-9e5c-9d6274f5890a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"6baef908-8ca9-4860-94ee-3dd27dfb2b37\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"6d506ed9-64f9-49d8-9fe1-d360a62e50e9\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"e2875f31-f76b-417c-8b95-4f3f87c5a7a6\",\"type\":\"BasicTicker\"},{\"attributes\":{\"label\":{\"value\":\"radar measurements\"},\"renderers\":[{\"id\":\"c7432b1d-cbfa-459e-a919-3f5ec2d75a24\",\"type\":\"GlyphRenderer\"}]},\"id\":\"8dfba104-830c-4e7c-abbc-23743150c6fe\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[0.0,0.0,2.098967,2.098967,4.291359,4.291359,6.569422,6.569422,8.924371,8.924371,11.34677,11.34677,13.82695,13.82695,16.35537,16.35537,18.92299,18.92299,21.52152,21.52152,24.14369,24.14369,26.78329,26.78329,29.43523,29.43523,32.09547,32.09547,34.76081,34.76081,37.42874,37.42874,40.09711,40.09711,42.76381,42.76381,45.42651,45.42651,48.08234,48.08234,50.72763,50.72763,53.35773,53.35773,55.96692,55.96692,58.54835,58.54835,61.09413,61.09413,63.59551,63.59551,66.04312,66.04312,68.4273,68.4273,70.73845,70.73845,72.96749,72.96749,75.10617,75.10617,77.14752,77.14752,79.0861,79.0861,80.91825,80.91825,82.64225,82.64225,84.25837,84.25837,85.7688,85.7688,87.1776,87.1776,88.49045,88.49045,89.71448,89.71448,90.85799,90.85799,91.93022,91.93022,92.94111,92.94111,93.90109,93.90109,94.82094,94.82094,95.71161,95.71161,96.58418,96.58418,97.44996,97.44996,98.31977,98.31977,99.20492,99.20492,100.1165,100.1165,101.0655,101.0655,102.0628,102.0628,103.1189,103.1189,104.2439,104.2439,105.4471,105.4471,106.7373,106.7373,108.1217,108.1217,109.6065,109.6065,111.1961,111.1961,112.8933,112.8933,114.6988,114.6988,116.6112,116.6112,118.6276,118.6276,120.7427,120.7427,122.9501,122.9501,125.2417,125.2417,127.6087,127.6087,130.0415,130.0415,132.5304,132.5304,135.066,135.066,137.6394,137.6394,140.2424,140.2424,142.8679,142.8679,145.5099,145.5099,148.1635,148.1635,150.8248,150.8248,153.4907,153.4907,156.1589,156.1589,158.8271,158.8271,161.4933,161.4933,164.1551,164.1551,166.8094,166.8094,169.4525,169.4525,172.0795,172.0795,174.6846,174.6846,177.2606,177.2606,179.7995,179.7995,182.2925,182.2925,184.7302,184.7302,187.1027,187.1027,189.4007,189.4007,191.6151,191.6151,193.7378,193.7378,195.7622,195.7622,197.6831,197.6831,199.4972,199.4972,201.2029,201.2029,202.8011,202.8011,204.2941,204.2941],\"y\":[0.0,0.0,0.0522228,0.0522228,0.2153118,0.2153118,0.4960956,0.4960956,0.8992403,0.8992403,1.426997,1.426997,2.079045,2.079045,2.852433,2.852433,3.74161,3.74161,4.738551,4.738551,5.832949,5.832949,7.012457,7.012457,8.262985,8.262985,9.569013,9.569013,10.91392,10.91392,12.28034,12.28034,13.65048,13.65048,15.00648,15.00648,16.33075,16.33075,17.60632,17.60632,18.81717,18.81717,19.94857,19.94857,20.98742,20.98742,21.92253,21.92253,22.7449,22.7449,23.44793,23.44793,24.02757,24.02757,24.48242,24.48242,24.81366,24.81366,25.02499,25.02499,25.12237,25.12237,25.11374,25.11374,25.00864,25.00864,24.81776,24.81776,24.5525,24.5525,24.22449,24.22449,23.84512,23.84512,23.42518,23.42518,22.97451,22.97451,22.50173,22.50173,22.01409,22.01409,21.51741,21.51741,21.01603,21.01603,20.51295,20.51295,20.00996,20.00996,19.50782,19.50782,19.00655,19.00655,18.50597,18.50597,18.00486,18.00486,17.50296,17.50296,17.00014,17.00014,16.49696,16.49696,15.99493,15.99493,15.49673,15.49673,15.00637,15.00637,14.52929,14.52929,14.07238,14.07238,13.64396,13.64396,13.25356,13.25356,12.91178,12.91178,12.62989,12.62989,12.4195,12.4195,12.29211,12.29211,12.25864,12.25864,12.32894,12.32894,12.5114,12.5114,12.8125,12.8125,13.23651,13.23651,13.78526,13.78526,14.45798,14.45798,15.2513,15.2513,16.15922,16.15922,17.17333,17.17333,18.28295,18.28295,19.47543,19.47543,20.73641,20.73641,22.05016,22.05016,23.39992,23.39992,24.76822,24.76822,26.13723,26.13723,27.48911,27.48911,28.80636,28.80636,30.07213,30.07213,31.27061,31.27061,32.38732,32.38732,33.40945,33.40945,34.32617,34.32617,35.12887,35.12887,35.81136,35.81136,36.37004,36.37004,36.80395,36.80395,37.11471,37.11471,37.3064,37.3064,37.38535,37.38535,37.3598,37.3598,37.2395,37.2395,37.03531,37.03531,36.75869,36.75869,36.42125,36.42125,36.03433,36.03433]}},\"id\":\"47588d8e-0c73-43a3-affc-9cf2f21517eb\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"68428a5a-ad16-4211-8ba6-6ad6be218aee\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"4c7befda-3f62-4d1f-ad97-736030b01b12\",\"type\":\"HoverTool\"}]},\"id\":\"1f5e755e-dd5a-46e4-b495-1bdd5d52b11c\",\"type\":\"Toolbar\"},{\"attributes\":{\"formatter\":{\"id\":\"68428a5a-ad16-4211-8ba6-6ad6be218aee\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e2875f31-f76b-417c-8b95-4f3f87c5a7a6\",\"type\":\"BasicTicker\"}},\"id\":\"e6273c42-7852-444f-b164-9a9fdf5e8d79\",\"type\":\"LinearAxis\"},{\"attributes\":{\"angle\":{\"field\":\"angle\",\"units\":\"rad\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1a702cc8-8c7e-4c62-8086-a3c1189e0d63\",\"type\":\"Square\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[0.0,0.0,1.5594294407139864,1.6997642436040528,3.8917923855664487,4.06381861083907,6.86063400846729,6.598257790897028,9.077398062364205,9.016314160276366,11.574745880131799,11.511240292875755,13.595201582532296,13.766550957474472,16.64141195103766,16.390098776978668,19.01115821017751,19.088953487623748,21.33291794508709,21.537740411841565,24.079169869579506,24.288247410135753,26.609664464100984,26.761889508058754,29.58444339441153,29.479214053423103,31.943999680604378,31.975171255785632,34.61392371556521,34.739557383541765,37.144076218761256,37.3720875206958,40.32560399006981,40.06457705439623,42.766787310184505,42.69864697597086,45.35728563972067,45.485851243239495,48.155391928391246,48.082423174589586,50.62276929421176,50.60247146869716,53.72170641880972,53.50139666603117,56.0352599784601,55.970221950077814,58.65883888750275,58.59105728059672,60.87795726743112,60.95163997425266,63.37964427421494,63.48131546855045,66.3392116463772,66.04160308973533,68.26215491736463,68.4457591883614,70.82859089827669,70.81177222188988,72.89371997278187,72.98954765866793,75.00303489263688,75.01250966950117,77.12161218641057,77.05929212027051,79.10777409449865,79.06626857878656,80.80863382334134,80.93052112993357,82.62158561165299,82.54529929887109,84.17243834980827,84.21476644994489,85.64035403065675,85.82342986489931,86.94772941066692,87.23774969920835,88.82005814786982,88.61019030525492,89.50104744914198,89.67766459525275,90.5133150525439,90.69187436632792,91.71943895675632,91.85047642501232,92.85986939282726,93.0081734275299,93.47177282711581,93.7560649147808,95.31731144750817,94.80124987945607,95.50556635209328,95.58106786662978,96.26447993756973,96.42932811974242,97.5275466202392,97.46846858046455,98.21192238024696,98.3223934179667,99.03712209402433,99.11506721006639,99.99806489187743,100.15077401027625,101.20236200956009,101.16537769337545,102.38557300520951,102.20922608989436,103.00484418117264,103.04388987112561,104.11448681762992,104.04263117852474,105.5373958011511,105.38381549292414,106.8312003565689,106.65838139704964,108.08199499708465,108.12015405695934,109.536557221145,109.51798444739792,111.06120666540242,111.19860005730496,112.91383001133056,112.88643333921839,114.7987094778584,114.79622480022661,116.68794963080177,116.79724873039008,118.9520961057263,118.90421665311605,120.69784946612906,120.89151003814206,123.5632726296101,123.24766752238506,124.89950378104524,125.34232306549225,127.85209578794976,127.70661217654973,129.94882339585882,130.13428155138342,132.0952564697859,132.370616191482,135.07108311335293,135.01884042435603,137.56145171173029,137.62133478591494,140.33078897967857,140.35527330800906,142.89110995582928,142.87825230089533,145.39205315487314,145.5823921945002,148.25222005607853,148.2267618322195,150.68632207547498,150.74375314771112,153.4224977037653,153.4255374999488,156.0465346635725,156.0028863707598,158.90150627466164,158.87241572790666,161.4151249346334,161.5156326978804,163.62750017993474,163.9463284600591,166.82560169326106,166.69634156453773,169.09942698516178,169.24419916027952,172.1723007443566,172.0599806054648,174.6444093334491,174.6081158550394,177.03021450263947,177.10176361151582,180.14120716074885,179.72525106406857,182.59564599152037,182.2939670911588,184.7326792314511,184.7006055377946,186.94536114239676,187.07045981106444,189.46574586383116,189.5103094241485,191.73542821417678,191.6944266534645,193.47413562852392,193.61050992645215,195.98788947680774,195.65988697319796,197.72313675947967,197.59432152513537,199.2957485946026,199.36270926264527,201.54535452548902,201.1699254114176,202.9612575722091,202.80324175336833,203.99277968677674,204.02844674190862],\"y\":[0.0,0.0,-0.13850011810807575,0.02939423931229085,-0.13381703741216905,0.1963922156187688,0.417074606700436,0.48739976802645557,0.5931888596061516,0.8975420139465631,1.6660164621254927,1.439105463384184,2.3091004553384984,2.0241602510657986,2.902239992057652,2.865252709677587,3.7057064616237136,3.812435094226425,4.732297186215907,4.7319518188913925,5.570439099613631,5.841511577402024,6.96207768274138,6.96149099276796,8.088220912268996,8.23137878310161,9.87793323316501,9.586882739667672,10.701214598414257,10.87612054310945,12.087506449146458,12.240627485062115,13.469785685695351,13.63546293004128,14.828876928918119,14.988698682358853,16.552750330156147,16.488563599770824,17.287562064718735,17.52070029078101,19.066735816090596,18.853885430683054,19.903221342300608,19.845232184047987,21.0851041995143,21.033590050334066,21.790939218981407,21.92353337456869,22.781176822257702,22.739763643201762,23.41406612094208,23.58411803335816,23.993270577750035,23.969900994440742,24.359704427415796,24.48928102171255,24.884688795468435,24.76307219447432,24.714955818843208,24.90873395563262,25.258154735020753,25.19326648225177,24.934110251708564,25.127836621606964,25.03412367479903,24.97120400613181,24.87000214543947,24.848381409631195,24.638627219489443,24.73411944325635,24.551813008431893,24.42068544126276,23.80814881274949,23.777806154322622,23.52442322938002,23.497531222498267,22.79144011874045,22.87968265312676,22.304813206635266,22.406635575046373,21.672805244937955,21.899391049061702,21.114277928132605,21.322844165172945,20.954166573301165,20.994917379629626,20.21818631762873,20.398523923388257,19.65843990865857,19.757332259055723,19.694892105126584,19.641055786260196,19.164695790172345,19.01784414385946,18.720201490065634,18.433508730037676,18.374298226818926,18.267020452646324,17.360939935716758,17.346252414074513,16.981653799470863,16.956237210001277,16.541870520829455,16.486769108887813,16.392493110673577,16.119362544808286,15.359410691222228,15.265499705874573,15.260057408946457,15.027455579051198,14.450693503413412,14.234483320956373,14.035849235351629,14.131635166041077,13.672792142985315,13.679905608591493,13.559664107499334,13.384178574319206,12.592882956183582,12.750864176184049,12.477303563799806,12.630999328039145,12.559156391359906,12.451192322833451,12.097353155126413,12.087597032948636,12.003964534036044,12.168459719887368,12.290051215689006,12.260083209408709,12.82800055737522,12.78916913603424,12.778655990870664,12.888456492816962,13.322669868791067,13.257280322102579,13.69915143308757,13.73383551291505,14.503252879067434,14.462296023142853,15.051304664832825,14.905641274046754,16.205609310392145,16.31436863161683,17.019885208680048,17.19576398048579,17.984312238681422,18.046645205184525,19.166391353759632,19.241832164672537,20.47193765300606,20.616161954528714,22.116790603300558,22.03643791157596,23.48869031158666,23.318596292878805,24.808004825897847,24.87657305353883,26.03365223401951,26.067096063713503,27.422384087409842,27.5487054353863,28.7731065988469,28.94955057589845,30.2044991429592,30.057819939523327,31.370867516791613,31.21944469780818,32.340715054260116,32.400866671283595,33.46295321123981,33.57215480641768,34.20451415057002,34.126425350517636,35.13628403552346,35.1590033793527,35.75950255374069,35.83716653575751,36.51074377726786,36.419806320218726,36.943651593388275,36.95225995437127,37.40320586605088,37.30557323889721,37.56446313814522,37.46558466648027,37.279670209953714,37.331875651841365,37.3976584649934,37.37185920037473,37.727128771026244,37.62419893121266,37.29024791638682,37.31260204192366,36.99436409329722,37.03832984738309,36.460672876380585,36.591752856164355,36.194064073441325,36.22529092878557]}},\"id\":\"c0b1e97d-121e-4b87-b985-b0e6928e7f01\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"47588d8e-0c73-43a3-affc-9cf2f21517eb\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"46905009-e640-4e4c-8898-8b9361a815ed\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"3888e576-5a22-441d-8b0e-ed137840362f\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"b6479b0c-3473-4b79-b10f-9b9d596de41b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3888e576-5a22-441d-8b0e-ed137840362f\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"orange\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b6873f9f-d9a4-470b-9632-f63e4b92e341\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6d506ed9-64f9-49d8-9fe1-d360a62e50e9\",\"type\":\"BasicTicker\"}},\"id\":\"d5995017-953b-4fd3-9dab-6294e2d48c21\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"a0a1535b-8ea7-43d4-b5e7-30948bd84d74\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6d506ed9-64f9-49d8-9fe1-d360a62e50e9\",\"type\":\"BasicTicker\"}},\"id\":\"d65677e2-6acb-4a96-9f3d-e7fb7a6c4002\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":[0.0,1.559445,3.890927,6.863517,9.077331,11.57555,13.59209,16.64559,19.01058,21.33124,24.07871,26.60525,29.58639,31.9416,34.61568,37.14036,40.32853,42.76639,45.35721,48.15409,50.62278,53.72678,56.03223,58.6632,60.87224,63.38208,66.34029,68.26205,70.82748,72.89226,75.00209,77.12245,79.1089,80.80743,82.62158,84.17335,85.63776,86.94492,88.82267,89.49667,90.51327,91.71782,92.85989,93.46683,95.32289,95.50389,96.26405,97.52863,98.21047,99.03627,99.99686,101.2038,102.3868,103.0034,104.1144,105.5409,106.8312,108.0836,109.5344,111.063,112.9126,114.801,116.6871,118.9528,120.6951,123.5682,124.8938,127.8531,129.9473,132.0919,135.0735,137.5606,140.3314,142.8884,145.392,148.2509,150.6859,153.422,156.0466,158.9049,161.4116,163.6251,166.8278,169.0972,172.1752,174.643,177.0301,180.1454,182.5994,184.7319,186.9463,189.4652,191.7353,193.4712,195.9914,197.7246,199.2941,201.5491,202.9624,203.9906],\"y\":[0.0,-0.1385015,-0.1341657,0.4168175,0.5932112,1.6669,2.311915,2.902999,3.705553,4.732053,5.569675,6.96102,8.08789,9.880168,10.6988,12.08833,13.46661,14.82937,16.55239,17.28347,19.07211,19.89821,21.0923,21.78207,22.78765,23.4069,23.99586,24.35817,24.88439,24.71354,25.25945,24.92967,25.03687,24.86882,24.63932,24.55042,23.80798,23.52704,22.78691,22.30817,21.66767,21.11524,20.95372,20.21548,19.65849,19.6984,19.15973,18.72696,18.3739,17.35698,16.98822,16.53684,16.39923,15.35302,15.27083,14.44125,14.04819,13.6604,13.57136,12.58139,12.48773,12.55057,12.10355,12.00094,12.2918,12.8297,12.77429,13.32727,13.6963,14.50702,15.04748,16.2147,17.00802,17.99183,19.16167,20.47536,22.11423,23.49086,24.80844,26.03078,27.42561,28.76827,30.20623,31.37172,32.34041,33.46252,34.20094,35.14229,35.75303,36.51547,36.94045,37.40516,37.56307,37.27891,37.39908,37.72855,37.28617,36.99733,36.45683,36.1967]}},\"id\":\"2b18215c-9f67-4ba0-a64d-bdb6b7182151\",\"type\":\"ColumnDataSource\"}],\"root_ids\":[\"cb95ae9c-40ca-4f85-9c28-78daffb53387\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
       "            var render_items = [{\"docid\":\"c881ce0a-23d8-4834-a197-24bdc17b5102\",\"elementid\":\"e82d6d5e-aec1-426e-a27e-e5593b112d73\",\"modelid\":\"cb95ae9c-40ca-4f85-9c28-78daffb53387\"}];\n",
       "            \n",
       "            Bokeh.embed.embed_items(docs_json, render_items);\n",
       "          };\n",
       "          if (document.readyState != \"loading\") fn();\n",
       "          else document.addEventListener(\"DOMContentLoaded\", fn);\n",
       "        })();\n",
       "      },\n",
       "      function(Bokeh) {\n",
       "      }\n",
       "    ];\n",
       "  \n",
       "    function run_inline_js() {\n",
       "      \n",
       "      if ((window.Bokeh !== undefined) || (force === true)) {\n",
       "        for (var i = 0; i < inline_js.length; i++) {\n",
       "          inline_js[i](window.Bokeh);\n",
       "        }if (force === true) {\n",
       "          display_loaded();\n",
       "        }} else if (Date.now() < window._bokeh_timeout) {\n",
       "        setTimeout(run_inline_js, 100);\n",
       "      } else if (!window._bokeh_failed_load) {\n",
       "        console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "        window._bokeh_failed_load = true;\n",
       "      } else if (force !== true) {\n",
       "        var cell = $(document.getElementById(\"e82d6d5e-aec1-426e-a27e-e5593b112d73\")).parents('.cell').data().cell;\n",
       "        cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "      }\n",
       "  \n",
       "    }\n",
       "  \n",
       "    if (window._bokeh_is_loading === 0) {\n",
       "      console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "      run_inline_js();\n",
       "    } else {\n",
       "      load_libs(js_urls, function() {\n",
       "        console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "      });\n",
       "    }\n",
       "  }(this));\n",
       "</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hover7 = HoverTool( tooltips = [\n",
    "            (\"index\", \"$index\"),\n",
    "            (\"x , y\", \"$x, $y\"),\n",
    "            (\"angle radians\", \"@angle\")])\n",
    "\n",
    "p = figure(plot_width = 1000, plot_height = 700, tools = [hover7])\n",
    "\n",
    "p.square(\n",
    "  'x', 'y', size = 10, \n",
    "  fill_color = \"violet\",\n",
    "  line_color = \"violet\",\n",
    "  fill_alpha = 0.5,\n",
    "  angle = 'angle', \n",
    "  line_width = 1, \n",
    "  legend = \"radar measurements\", \n",
    "  source = radar_source)\n",
    "\n",
    "p.circle(\n",
    "  'x', 'y', size = 10, \n",
    "  fill_color = \"green\",\n",
    "  line_color = \"white\",\n",
    "  fill_alpha = 0.4,\n",
    "  line_width = 1, \n",
    "  legend = \"lidar measurements\", \n",
    "  source = lidar_source)\n",
    "\n",
    "p.line(state_xs, state_ys, line_width = 2, color='orange', legend = \"state predictions\")\n",
    "p.line(truth_xs, truth_ys, line_dash = \"4 4\", line_width = 1, color='navy', legend = \"ground truth\")\n",
    "\n",
    "p.legend.location = \"bottom_right\"\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
